1 自定义类型保护
function isString(value: number | string): value is string { const number = Math.random() * 10 return number < 5; }
首先定义一个函数,函数的参数 value 就是要判断的值,在这个例子中 value 的类型可以为 number 或 string,函数的返回值类型是一个结构为 value is type
的类型谓语,value 的命名无所谓,但是谓语中的 value 名必须和参数名一致。
2 . typeof 类型保护
- type 只能是
number
、string
、boolean
和symbol
四种类型
- 只能使用
=
和!
两种形式来比较
3. instanceof 类型保护
instanceof
操作符是 JS 中的原生操作符,它用来判断一个实例是不是某个构造函数创建的,或者是不是使用 ES6 语法的某个类创建的。