类型断言
在一个变量声明有多种类型,但又要调用其中一种类型的内置方法时会出现以下错误
鼠标移入错误区域会提示下面错误:
根据错误提示发现是number
类型的变量是没有length
属性所以就无发获取length
属性,编辑器就会抛错。解决这种抛错的方法便是断言语句。
断言语句便是告诉编辑器这个时候这个变量就是这个类型的。那么代码变要这么修改:
- 断言写法一(使用
as
断言)
const getLength = (target : string | number) : number => {
if ((target as string).length || (target as string).length === 0) {
return (target as string).length
} else {
return target.toString().length
}
}
- 断言写法二(使用尖括号断言)
const getLength = (target : string | number) : number => {
if ((<string>target).length || (<string>target).length === 0) {
return (<string>target).length
} else {
return target.toString().length
}
}