关键字ts [K, keyof T]
时间: 2024-09-09 22:08:11 浏览: 60
![ZIP](https://csdnimg.cn/release/download/static_files/pc/images/minetype/ZIP.png)
TS下载助手,快速下载文件
在TypeScript(TS)中,关键字`[K, keyof T]`通常用于数组推导或对象类型的解构。当你看到这种形式,它表示你想要创建一个新的数组,其中包含类型T的所有属性名(即`keyof T`),并为每个属性分配对应的值类型,这里的值类型是该属性本身的类型`T[K]`。
例如,如果你有一个用户对象:
```typescript
interface User {
name: string;
age: number;
}
let user: User = { name: 'Alice', age: 30 };
```
你可以这样创建一个新的只包含名字属性的新数组:
```typescript
const keysOfUser = ['name'] as const; // 类型:readonly ['name']
type UserNames = typeof keysOfUser[number]; // 类型:string
// 或者更简洁地
type UserNameArray = [K in keyof User] extends string ? K : never[];
```
这将得到`UserNameArray`类型为`['name']`,表示只有名字属性存在。这样可以使代码更具类型安全性,并且便于处理和操作。
阅读全文