基础类型

类型

示例

描述

布尔值

const areYouOk:boolean = true;

数字

const age:number = 123;

字符串

const myName: string = 'song';

数组 (1)

const list: number[] = [1,2,4]; const list: Array = [1,2,4]

元组

let x: [string, number]; x = ['1',1]

表示一个已知元素数量和类型的数组,元素类型不必相同

枚举 (2)

enum Color { Red, Green, Blue } let c: Color = Color.Green;

Any (3)

let notSure: any = 4; notSure = "maybe a string"; notSure = false;

不希望类型检查器进行检查

void (4)

用处不大

null 和 undefined

用处不大

never (5)

永不存在的值的类型,那些总会抛出异常 或者根本不会有返回值的函数表达式或者箭头函数表达式的返回值类型 变量也可能是 nerver 类型,当他们被永不为真的类型保护所约束时

Object

表示非原始类型,除了 number, string, boolean, symbol, null 或者 undefined之外的类型

类型断言 (6)

(1): 其中 Array 即为接受参数的泛型接口,如下:

interface Array<T> {
    find<S extends T>(predicate: (this: void, value: T, index: number, obj: T[]) => value is S, thisArg?: any): S | undefined;
    ...
    find(predicate: (value: T, index: number, obj: T[]) => unknown, thisArg?: any): T | undefined;
    ...
    findIndex(predicate: (value: T, index: number, obj: T[]) => unknown, thisArg?: any): number;
    ...
    fill(value: T, start?: number, end?: number): this;
    ...
    copyWithin(target: number, start: number, end?: number): this;
}

(2): 枚举

编译之后的代码需要注意:

默认情况下,从0开始为元素编号,但是可以手动指定成员的数值:

枚举的便利在于可以由枚举的值得到它的名字:

(3): Any 与 Object 的区别

Object类型的变量允许你给它赋任意值,但是却不能调用它上面任意的方法,即使它真的有这些方法:

(4): void

当函数没有返回值时,

void类型没有什么大用,只能赋予 undefined 或者 null

(5): never

(6): 类型断言

会遇到这样的情况,你比 typescript 更了解某个值的详细信息,通常发生在你清楚的知道一个实体具有比它现有类型更确切的类型。

通过类型断言告诉编译器,"相信我,我知道自己在干什么"

类型断言的两种形式:

尖括号形式

as 语法

Last updated

Was this helpful?