ts 获取每个value的类型
时间: 2024-09-15 17:10:33 浏览: 47
基于ts的动态接口数据配置的详解
在TypeScript(简称TS)中,如果你想获取某个数组或对象中每个value的类型,可以使用泛型、联合类型或者类型断言。这里有一些例子:
1. 对于数组:
```typescript
type Values<T> = T extends any[] ? T[number] : never;
let numbers: number[] = [1, 2, 3];
type NumberArrayValues = Values<typeof numbers>; // 数组值的类型会推导为number
```
在这个例子中,`Values`是一个泛型函数,它返回的是输入数组类型的元素类型。
2. 对于对象:
```typescript
interface MyObject {
key1: string;
key2: number;
}
function getValueTypes(obj: MyObject): { [P in keyof MyObject]: typeof obj[P] } {
return { ...obj };
}
let myObj: MyObject = { key1: 'hello', key2: 42 };
type ObjValueType = ReturnType<typeof getValueTypes(myObj)>;
// 这将得到:{ key1: string; key2: number; }
```
这里的`getValueTypes`函数返回一个新对象,其键对应的值就是原对象中对应属性的类型。
阅读全文