如何提取TypeScript接口属性的类型?
大家好!我是TypeScript新手,遇到了一个困扰我几个小时的问题。我有一个描述用户的接口:
```typescript
interface User {
id: number;
name: string;
email: string;
role: 'admin' | 'user' | 'guest';
createdAt: Date;
}
```
现在我需要创建一个单独的类型,只对应这个接口中的 `role` 属性。也就是说,我想得到类型 `'admin' | 'user' | 'guest'`,而无需手动重新声明它。
我试过写类似 `type RoleType = User['role']` 这样的代码,但不确定这是否是正确的语法,也不确定在TypeScript中是否可能实现。我尝试搜索过,但找到了很多关于conditional types和mapped types的复杂示例,目前还不太理解。
请问有没有简单优雅的方法从接口中“提取”特定属性的类型?感谢提供代码示例和适合新手的解释。
标签:typescript, typing, 接口, 属性