ts中获取interface的所有键名
时间: 2023-05-28 08:07:44 浏览: 534
ts-transformer-keys:TypeScript自定义转换器,可以获取给定类型的键
可以使用`keyof`关键字来获取interface的所有键名。例如:
```typescript
interface Person {
name: string;
age: number;
gender: 'male' | 'female';
}
type PersonKeys = keyof Person;
// 等价于 type PersonKeys = 'name' | 'age' | 'gender'
function getProperty(obj: Person, key: PersonKeys) {
return obj[key];
}
const person: Person = {
name: 'Tom',
age: 18,
gender: 'male',
};
getProperty(person, 'name'); // 'Tom'
getProperty(person, 'age'); // 18
getProperty(person, 'gender'); // 'male'
```
在上面的例子中,我们使用`keyof`关键字定义了一个`PersonKeys`类型,它等价于`'name' | 'age' | 'gender'`。然后我们使用`PersonKeys`作为函数`getProperty`的第二个参数类型,来限制只能传入`Person`的键名作为参数。
这样就可以在`getProperty`函数中使用`key`参数来获取`obj`对象的对应属性值了。
阅读全文