摘要:
module.exports/exports module.exports 是模块系统创建的(全局内置对象);当你创建完成一个模块时,需要将此模块暴露出去,以便使用;module.exports 便提供了暴露出去的接口方法; 例如暴露出去一个对象(暴露一个全局变量或方法): /**创建模块 modu 阅读全文
摘要:
在了解原型和原型链之前,先明确几个概念: 一切引用类型(数值、对象、函数)都是对象,都是可以自由扩展属性的,null 除外; 对象是属性的集合; 每个对象都是通过构造函数创建的; 每个函数都有一个 prototype 属性(此属性是一个对象),也就是 原型;对象都有一个 __proto__ 属性,此 阅读全文
摘要:
声明合并 如果定义了两个相同名字的函数、接口或类,那么它们会合并成一个类型: 函数的合并 之前学习过重载,我们可以使用重载定义多个函数类型: 接口的合并 接口中的属性在合并时会简单的合并到一个接口中: 相当于: 注意, 合并的属性的类型必须是唯一的 : ts interface Alarm { pr 阅读全文
摘要:
泛型 泛型(Generics)是指在定义函数、接口或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性。 简单的例子 首先,我们来实现一个函数 ,它可以创建一个指定长度的数组,同时将每一项都填充一个默认值: ts function createArray(length: number 阅读全文
摘要:
类与接口 "之前学习过" ,接口(Interfaces)可以用于对「对象的形状(Shape)」进行描述。 这一章主要介绍接口的另一个用途,对类的一部分行为进行抽象。 类实现接口 实现(implements)是面向对象中的一个重要概念。一般来讲,一个类只能继承自另一个类,有时候不同类之间可以有一些共有 阅读全文
摘要:
类 传统方法中,JavaScript 通过构造函数实现类的概念,通过原型链实现继承。而在 ES6 中,我们终于迎来了 。 TypeScript 除了实现了所有 ES6 中的类的功能以外,还添加了一些新的用法。 这一节主要介绍类的用法,下一节再介绍如何定义类的类型。 类的概念 虽然 JavaScrip 阅读全文
摘要:
枚举 枚举(Enum)类型用于取值被限定在一定范围内的场景,比如一周只能有七天,颜色限定为红绿蓝等。 简单的例子 枚举使用 关键字来定义: 枚举成员会被赋值为从 开始递增的数字,同时也会对枚举值到枚举名进行反向映射: 事实上,上面的例子会被编译为: 手动赋值 我们也可以给枚举项手动赋值: 上面的例子 阅读全文
摘要:
元组 数组合并了相同类型的对象,而元组(Tuple)合并了不同类型的对象。 元组起源于函数编程语言(如 F ),这些语言中会频繁使用元组。 简单的例子 定义一对值分别为 和 的元组: 当赋值或访问一个已知索引的元素时,会得到正确的类型: 也可以只赋值其中一项: 但是当直接对元组类型的变量进行初始化或 阅读全文
摘要:
字符串字面量类型 字符串字面量类型用来约束取值只能是某几个字符串中的一个。 上例中,我们使用 定了一个字符串字面量类型 ,它只能取三种字符串中的一种。 注意, 类型别名与字符串字面量类型都是使用 进行定义。 本文引用 "xcatliu" 阅读全文
摘要:
类型别名 类型别名用来给一个类型起个新名字。 上例中,我们使用 创建类型别名。 类型别名常用于 联合类型 。 本文引用 "xcatliu" 阅读全文