TypeScript在线运行

版本:

所属目录
点击了解高性能代码运行API
运行结果
教程手册
代码仓库
极速运行
终端运行
图形+终端

                        
以下是用户最新保存的代码
自定义 new 发布于:2024-01-12 18:02 ts 测试代码 发布于:2024-01-12 17:56 基数排序(TypeScript) 发布于:2023-12-06 21:16 计数排序(TypeScript) 发布于:2023-11-29 20:10 TypeScript 学习 发布于:2023-11-27 19:13 堆排序(TypeScript) 发布于:2023-11-22 21:11 测试测试测试测试测试测试 发布于:2023-11-23 20:58 堆(TypeScript) 发布于:2023-11-22 21:11 数组第k大的值(TypeScript) 发布于:2023-11-14 20:50 快速排序(TypeScript) 发布于:2023-11-14 20:28 实现数组元素的和 发布于:2023-11-09 21:40 实现日期的转换 发布于:2023-11-09 21:33 heap求第k大的值 发布于:2023-11-08 21:09 TS快速排序 发布于:2023-11-08 20:51 快速排序(TypeScript) 发布于:2023-11-08 21:08 ## ts合并对象 1. 扩展运算符合并 2. Object.assign( ) 3. 合并三个对象 发布于:2023-11-08 14:35 求逆序对个数(TypeScript) 发布于:2023-11-06 19:12 归并排序(TypeScript) 发布于:2023-11-06 18:57 数组累加求和(TypeScript) 发布于:2023-10-29 16:19 农民分土地(TypeScript) 发布于:2023-10-29 16:18 农民分土地 发布于:2023-10-25 20:17 判断字符串是否为回文串(TypeScript) 发布于:2023-10-24 15:35 求解斐波那契数列(TypeScript) 发布于:2023-10-24 15:35 求解阶乘(TypeScript) 发布于:2023-10-24 15:35 折半查找算法 发布于:2023-10-15 22:39 插入排序算法 发布于:2023-10-15 22:37 背包问题代码 发布于:2023-09-27 21:03 字符串匹配 发布于:2023-09-27 20:25 选择排序(TypeScript) 发布于:2023-09-20 21:16 学习ts编程代码 发布于:2023-09-16 12:10 阮一峰TS教学 发布于:2023-09-09 11:07 实现 PromiseAll 方法 发布于:2023-08-24 19:20 sleep 返回一个 Promise,并在 ms 毫秒后 Promise 变为完成状态 发布于:2023-08-24 19:14 product 计算数组笛卡尔积 发布于:2023-08-24 19:13 二叉树所有路径 发布于:2023-08-24 19:01 20 到 30之间的数相加 发布于:2023-08-05 09:34 洗牌算法测试 发布于:2023-07-05 15:41 class A{ FirstName:string LastName:string constructor( FirstName:string, LastName:string){ this.FirstName = FirstName this.LastName = LastName } get AllName(){ return this.FirstName+"---"+this.LastName } } const B = new A('张','三') console.log(B); 发布于:2023-07-04 18:40 let int:bigint = Bigint(100) 发布于:2023-07-02 18:19 最新保存数据 发布于:2023-06-28 15:01 orderTime处理逻辑 发布于:2023-06-27 20:42 for (let k = 0; k < arr.length; k++) { if (arr[k].days === orderData[i].dates.split(' ')[0]) { arr[k].services.push(JSON.stringify({ serviceName: orderData[i].serviceName })) 发布于:2023-06-27 10:16 TypeScript实现建造者模式 发布于:2023-06-14 09:26 # **ts 类型注解** 发布于:2023-05-15 13:43 测试ts相关 发布于:2023-05-11 18:07 TypeScript泛型编程-泛型约束 发布于:2023-04-27 16:18 TypeScript泛型编程-传入多个泛型 发布于:2023-04-27 15:47 TypeScript泛型编程-泛型实现类型参数化 发布于:2023-04-27 15:44 # 翻译字符串 华为一面没写出来的算法题,后来思考了一下应该还是可以写出来。 主要的盲点就是在寻找边界最好设立一个层级的概念 发布于:2023-04-04 10:59 泛型的使用 发布于:2023-03-21 16:23 [更多]
显示目录

对象



对象

对象是包含一组键值对的实例。 值可以是标量、函数、数组、对象等,如下实例:

var object_name = { 
    key1: "value1", // 标量
    key2: "value",  
    key3: function() {
        // 函数
    }, 
    key4:["content1", "content2"] //集合
}

以上对象包含了标量,函数,集合(数组或元组)。

对象实例

var sites = { 
   site1:"Jsrun", 
   site2:"Google" 
}; 
// 访问对象的值
console.log(sites.site1) 
console.log(sites.site2)

编译以上代码,得到以下 JavaScript 代码:

var sites = { 
   site1:"Jsrun", 
   site2:"Google" 
}; 
// 访问对象的值
console.log(sites.site1) 
console.log(sites.site2)
invokesites(sites);

输出结果为:

Jsrun
Google

TypeScript 类型模板

假如我们在 JavaScript 定义了一个对象:

var sites = { 
   site1:"Jsrun", 
   site2:"Google" 
};

这时如果我们想在对象中添加方法,可以做以下修改:

sites.sayHello = function(){ return "hello";}

如果在 TypeScript 中使用以上方式则会出现编译错误,因为Typescript 中的对象必须是特定类型的实例。

var sites = {
    site1: "Jsrun",
    site2: "Google",
    sayHello: function () { } // 类型模板
};
sites.sayHello = function () {
    console.log("hello " + sites.site1);
};
sites.sayHello();

编译以上代码,得到以下 JavaScript 代码:

var sites = {
    site1: "Jsrun",
    site2: "Google",
    sayHello: function () { } // 类型模板
};
sites.sayHello = function () {
    console.log("hello " + sites.site1);
};
sites.sayHello();

输出结果为:

hello Jsrun

此外对象也可以作为一个参数传递给函数,如下实例:

var sites = { 
    site1:"Jsrun", 
    site2:"Google",
}; 
var invokesites = function(obj: { site1:string, site2 :string }) { 
    console.log("site1 :"+obj.site1) 
    console.log("site2 :"+obj.site2) 
} 
invokesites(sites)

编译以上代码,得到以下 JavaScript 代码:

var sites = {
    site1: "Jsrun",
    site2: "Google"
};
var invokesites = function (obj) {
    console.log("site1 :" + obj.site1);
    console.log("site2 :" + obj.site2);
};
invokesites(sites);

输出结果为:

site1 :Jsrun
site2 :Google

鸭子类型(Duck Typing)

鸭子类型(英语:duck typing)是动态类型的一种风格,是多态(polymorphism)的一种形式。

在这种风格中,一个对象有效的语义,不是由继承自特定的类或实现特定的接口,而是由"当前方法和属性的集合"决定。

可以这样表述: "当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。"

在鸭子类型中,关注点在于对象的行为,能作什么;而不是关注对象所属的类型。

例如,在不使用鸭子类型的语言中,我们可以编写一个函数,它接受一个类型为"鸭子"的对象,并调用它的"走"和"叫"方法。在使用鸭子类型的语言中,这样的一个函数可以接受一个任意类型的对象,并调用它的"走"和"叫"方法。

如果这些需要被调用的方法不存在,那么将引发一个运行时错误。任何拥有这样的正确的"走"和"叫"方法的对象都可被函数接受的这种行为引出了以上表述,这种决定类型的方式因此得名。

interface IPoint { 
    x:number 
    y:number 
} 
function addPoints(p1:IPoint,p2:IPoint):IPoint { 
    var x = p1.x + p2.x 
    var y = p1.y + p2.y 
    return {x:x,y:y} 
} 

// 正确
var newPoint = addPoints({x:3,y:4},{x:5,y:1})  

// 错误 
var newPoint2 = addPoints({x:1},{x:4,y:3})
由JSRUN为你提供的TypeScript在线运行、在线编译工具
        JSRUN提供的TypeScript 在线运行,TypeScript 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。
yout