分类 前端 articles

Typescript Class类型

简介 类(class)是面向对象编程的基本构件,封装了属性和方法,TypeScript 给予了全面支持。 属性的类型 类的属性可以在顶层声明,也可以在构造方法内部声明。 对于顶层声明的属性,可以在声明时同时给出类型。 class Point { x:number; y:number; } 上面声明中,属性x和y的类型都是number。 如果不给出类型,……

Continue reading

Typescript Interface

简介 interface 是对象的模板,可以看作是一种类型约定,中文译为“接口”。使用了某个模板的对象,就拥有了指定的类型结构。 interface Person { firstName: string; lastName: string; age: number; } 上面示例中,定义了一个接口Person,它指定一个对象模板,拥有三个属性firstName、lastName和age。任何实现这个接口的对象,都必须部署……

Continue reading

Typescript 函数类型

简介 函数的类型声明,需要在声明函数时,给出参数的类型和返回值的类型。 function hello( txt:string ):void { console.log('hello ' + txt); } 上面示例中,函数hello()在声明时,需要给出参数txt的类型(string),以及返回值的类型(void),后者写在参数列表的圆括号后面。void类型表示没有返回值,详见后文。 如果不指定参……

Continue reading

Typescript 对象类型

简介 除了原始类型,对象是 JavaScript 最基本的数据结构。TypeScript 对于对象类型有很多规则。 对象类型的最简单声明方法,就是使用大括号表示对象,在大括号内部声明每个属性和方法的类型。 const obj:{ x:number; y:number; } = { x: 1, y: 1 }; 上面示例中,对象obj的类型就写在变量名后面,使用大括号描述,内部声明每个属性的……

Continue reading

Typescript 数组类型

简介 元组(tuple)是 TypeScript 特有的数据类型,JavaScript 没有单独区分这种类型。它表示成员类型可以自由设置的数组,即数组的各个成员的类型可以不同。 由于成员的类型可以不一样,所以元组必须明确声明每个成员的类型。 const s:[string, string, boolean] = ['a', 'b', true]; 上面示例中,元组s的前两个成员的类型是string,……

Continue reading

Typescript 数组类型

JavaScript 数组在 TypeScript 里面分成两种类型,分别是数组(array)和元组(tuple)。 简介 TypeScript 数组有一个根本特征:所有成员的类型必须相同,但是成员数量是不确定的,可以是无限数量的成员,也可以是零成员。 数组的类型有两种写法。第一种写法是在数组成员的类型后面,加上一对方括号。 let arr:number[] = [1, 2, 3]; 上面示例中……

Continue reading

Typescript 类型系统

TypeScript 继承了 JavaScript 的类型,在这个基础上,定义了一套自己的类型系统。 基本类型 概述 JavaScript 语言(注意,不是 TypeScript)将值分成8种类型。 boolean string number bigint symbol object undefined null TypeScript 继承了 JavaScript 的类型设计,以上8种类型可以看作 TypeScript 的基本类型。 注意,上面所有类型的名称都是小写字母,首字母大写的Number、String、B……

Continue reading

Typescript Any类型和unknown类型和never类型

any 类型,unknown 类型,never 类型 本章介绍 TypeScript 的三种特殊类型,它们可以作为学习 TypeScript 类型系统的起点。 any 类型 基本含义 any 类型表示没有任何限制,该类型的变量可以赋予任意类型的值。 let x:any; x = 1; // 正确 x = 'foo'; // 正确 x = true; // 正确 上面示例中,变量x的类型是any,就可以被赋值为任意类型的值。 变量……

Continue reading

Typescript 基本用法

类型声明 TypeScript 代码最明显的特征,就是为 JavaScript 变量加上了类型声明。 let foo:string; 上面示例中,变量foo的后面使用冒号,声明了它的类型为string。 类型声明的写法,一律为在标识符后面添加“冒号 + 类型”。函数参数和返回值,也是这样来声明类型。 function toString(num:number):string { return String(num); } 上面示例中,函数toString()的参数num……

Continue reading

运算符的扩展

本章介绍 ES6 后续标准添加的一些运算符。 指数运算符 ES2016 新增了一个指数运算符(**)。 2 ** 2 // 4 2 ** 3 // 8 这个运算符的一个特点是右结合,而不是常见的左结合。多个指数运算符连用时,是从最右边开始计算的。 // 相当于 2 ** (3 ** 2) 2 ** 3 ** 2 // 512 上面代码中,首先计算的是第二个指数运算符,而不是第一个。……

Continue reading