在使用断言时我们已经确定了变量的类型,确定该类型时一定存在(否则则会欺骗编译,运行时报错)。类型断言还是需要借助类型守卫的,类型守卫主要是用来判断未知类型是不是所需要的类型。 类型守卫主要包括四种方式:
- 类型判断:typeof
- 属性或者方法判断:in
- 实例判断:instanceof
- 字面量相等判断:, =, !=, !==
//例
function class(name: string, score: string | number) {
//识别到sore为number类型
if (typeof score === "number") {
}
//识别到sore为string类型
if (typeof score === "string") {
}
}