使用类型断言达到预期
类型断言
类型断言可以理解为把一个类型强制转化为另一个类型
断言使用方法就是 value as type
起因
const getLength = (target: string | number): number => {
if (target.length) {
//error因为string或者number都没有length属性
return target.length
} else {
return target.toString().length
}
}
这里我们接受了一个函数返回他的长度,我们可以传入字符串,数组,数值的类型.如果有 length 属性。说明参数是数组或者字符串,如果数值类型没有 length 属性。所以需要把数值类型转变为字符串类型然后在获取 length,所以我们这里限定传入的值只能是字符串后者数值类型
正确的做法
const getLength = (target:string|number):number=>{
if((target as string).length) //error因为string或者number都没有length属性
{
return (target as string).length;
}else{
return target.toString().length;
}
}
总结
断言的使用方法类似转换