面试题答案
一键面试报错原因
value
的类型是 string | number
,这意味着 value
可能是 string
类型也可能是 number
类型。而 number
类型并没有 length
属性,TypeScript 为了确保类型安全,会在编译时报错。
正确修改方式
- 类型断言:如果确定
value
是string
类型,可以使用类型断言。
let value: string | number;
value = 'hello';
console.log((value as string).length);
- 类型守卫:使用
typeof
进行类型判断。
let value: string | number;
value = 'hello';
if (typeof value ==='string') {
console.log(value.length);
}