ts判断数组元素的类型
时间: 2024-08-14 18:01:19 浏览: 53
在TypeScript中,你可以使用类型断言(type assertion)和类型守卫(type guard)来判断数组元素的类型。以下是两种常见的方法:
1. **类型断言(Type Assertion)**:
当你知道某个数组元素的具体类型,但 TypeScript 编译器无法自动推断时,你可以使用类型断言明确指定类型。例如:
```typescript
let arr: any[] = ['hello', 42];
if (typeof arr === 'string') {
// 类型断言 arr 为 string
let str: string = <string>arr;
} else {
console.log(arr); // 这里会报错,因为 arr 被假设为 string,实际上可能是 number
}
```
2. **类型守卫(Type Guard)**:
类型守卫是一种更安全的方式来检查类型,它返回一个布尔值,并根据结果改变变量的类型。可以使用 `instanceof`、条件运算符或者自定义函数来进行类型验证。例如:
```typescript
function isString(value: any): value is string {
return typeof value === 'string';
}
let arr: any[] = ['hello', 42];
for (let item of arr) {
if (isString(item)) { // 类型守卫,如果 item 是字符串,则 item 确定为 string 类型
console.log(item);
} else {
// 如果不是字符串,TypeScript 仍认为 item 可能是 string 或者 number
}
}
```
阅读全文