2024-06-25
简介 类(class)是面向对象编程的基本构件,封装了属性和方法,TypeScript 给予了全面支持。 属性的类型 类的属性可以在顶层声明,也可以在构造方法内部声明。 对于顶层声明的属性,可以在声明时同时给出类型。 class Point { x:number; y:number; } 上面声明中,属性x和y的类型都是number。 如果不给出类型,……
Continue reading
2024-06-24
简介 interface 是对象的模板,可以看作是一种类型约定,中文译为“接口”。使用了某个模板的对象,就拥有了指定的类型结构。 interface Person { firstName: string; lastName: string; age: number; } 上面示例中,定义了一个接口Person,它指定一个对象模板,拥有三个属性firstName、lastName和age。任何实现这个接口的对象,都必须部署……
Continue reading
2024-06-22
简介 函数的类型声明,需要在声明函数时,给出参数的类型和返回值的类型。 function hello( txt:string ):void { console.log('hello ' + txt); } 上面示例中,函数hello()在声明时,需要给出参数txt的类型(string),以及返回值的类型(void),后者写在参数列表的圆括号后面。void类型表示没有返回值,详见后文。 如果不指定参……
Continue reading
2024-06-22
简介 除了原始类型,对象是 JavaScript 最基本的数据结构。TypeScript 对于对象类型有很多规则。 对象类型的最简单声明方法,就是使用大括号表示对象,在大括号内部声明每个属性和方法的类型。 const obj:{ x:number; y:number; } = { x: 1, y: 1 }; 上面示例中,对象obj的类型就写在变量名后面,使用大括号描述,内部声明每个属性的……
Continue reading
2024-06-22
简介 元组(tuple)是 TypeScript 特有的数据类型,JavaScript 没有单独区分这种类型。它表示成员类型可以自由设置的数组,即数组的各个成员的类型可以不同。 由于成员的类型可以不一样,所以元组必须明确声明每个成员的类型。 const s:[string, string, boolean] = ['a', 'b', true]; 上面示例中,元组s的前两个成员的类型是string,……
Continue reading
2024-06-22
JavaScript 数组在 TypeScript 里面分成两种类型,分别是数组(array)和元组(tuple)。 简介 TypeScript 数组有一个根本特征:所有成员的类型必须相同,但是成员数量是不确定的,可以是无限数量的成员,也可以是零成员。 数组的类型有两种写法。第一种写法是在数组成员的类型后面,加上一对方括号。 let arr:number[] = [1, 2, 3]; 上面示例中……
Continue reading
2024-06-22
TypeScript 继承了 JavaScript 的类型,在这个基础上,定义了一套自己的类型系统。 基本类型 概述 JavaScript 语言(注意,不是 TypeScript)将值分成8种类型。 boolean string number bigint symbol object undefined null TypeScript 继承了 JavaScript 的类型设计,以上8种类型可以看作 TypeScript 的基本类型。 注意,上面所有类型的名称都是小写字母,首字母大写的Number、String、B……
Continue reading
2024-06-22
any 类型,unknown 类型,never 类型 本章介绍 TypeScript 的三种特殊类型,它们可以作为学习 TypeScript 类型系统的起点。 any 类型 基本含义 any 类型表示没有任何限制,该类型的变量可以赋予任意类型的值。 let x:any; x = 1; // 正确 x = 'foo'; // 正确 x = true; // 正确 上面示例中,变量x的类型是any,就可以被赋值为任意类型的值。 变量……
Continue reading
2024-06-22
类型声明 TypeScript 代码最明显的特征,就是为 JavaScript 变量加上了类型声明。 let foo:string; 上面示例中,变量foo的后面使用冒号,声明了它的类型为string。 类型声明的写法,一律为在标识符后面添加“冒号 + 类型”。函数参数和返回值,也是这样来声明类型。 function toString(num:number):string { return String(num); } 上面示例中,函数toString()的参数num……
Continue reading
2024-04-24
本章介绍 ES6 后续标准添加的一些运算符。 指数运算符 ES2016 新增了一个指数运算符(**)。 2 ** 2 // 4 2 ** 3 // 8 这个运算符的一个特点是右结合,而不是常见的左结合。多个指数运算符连用时,是从最右边开始计算的。 // 相当于 2 ** (3 ** 2) 2 ** 3 ** 2 // 512 上面代码中,首先计算的是第二个指数运算符,而不是第一个。……
Continue reading