类型注解

1
2
3
4
5
6
function fn(person: string):void{ // 参数类型是字符串,没有返回值
///...
}
fn('str') // 如传递参数非字符串,vscode编辑器中或在编译时将给出错误提示

const test:number = 1

有哪些基础类型注解?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// 基础类型
:string
:number
:boolean

:null // 只能是null值
:undefined // 只能是undefined值

:symbol

// 引用类型
:object // 不常用,多使用接口来给对象进行类型注解

// 其他
:any // 任意类型
:void // 空,用于函数的无返回值的注解
:never // 用于标注函数代码永远执行不完(如抛出错误的函数,死循环函数)


什么是类型注解和类型推断、类型断言?

类型注解 是显式的标注类型

类型推断 是编辑器根据值来自动推断出类型 (编辑器中鼠标移到变量会显示类型的提示)。

类型断言 是告诉编译器,“相信我,它就是这个类型”。

1
2
3
4
5
6
7
8
9
// 类型注解就是显式的写出类型
const myNumber: number = 123

// 类型推断是根据值来推断类型 (鼠标移到变量会显示类型(或直接显示值)的提示)
const myString = 'test'

// 类型断言(开发者明确知道是什么类型)
const someValue:any = 'abc'
const strLength:number = (someValue as string).length // 断言someValue是字符串类型