05 | 基本类型

ES6 的数据类型 与 TypeScript 的数据类型

ES6 的数据类型 TypeScript 的数据类型
Boolean Boolean
Number Number
String String
Array Array
Function Function
Object Object
Symbol Symbol
undefined undefined
null null
void
any
never
元组
枚举
高级类型

###类型注解

作用:相当于强类型语言中的类型声明
语法:(变量/函数):type

  • 在src文件夹中新建datatype.ts文件,在index.ts中引入该文件

index.ts

1
2
3
4
import './datatype'; // 新增这句话

let hello : String = 'Hello TypeScript';
document.querySelectorAll('.app')[0].innerHTML = 'hello';

datatype.ts

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// 原始类型
let bool: boolean = true;
let num: number | undefined | null = 123;
let str: string = 'abc';
// str = 123; // TS2322: Type 'number' is not assignable to type 'string'.

// 数组
let arr1: number[] = [1, 2, 3];
let arr2: Array<number | string> = [1, 2, 3, '666'];

// 元组
let tuple: [number, string] = [0, '1'];

// 函数
let add = (x: number, y:number) => x + y;
let compute: (x: number, y: number) => number;
compute = (a, b) => a + b;

// 对象
let obj: {x: number, y: number} = {x: 1, y: 2};
obj.x = 3;

// symbol
let s1: symbol = Symbol();
let s2 = Symbol();
console.log(s1 === s2);

// undefined, null
let un: undefined = undefined;
let nu: null = null;
num = undefined; // TS2322: Type 'undefined' is not assignable to type 'number'.
num = null; // TS2322: Type 'null' is not assignable to type 'number'.

// void
let noReturn = () => {};

// any
let x;
x = 1;
x = [];
x = () => {}

// never
let error = () => {
throw new Error('error');
}
let endless = () => {
while(true) {}
}