TypeScript基础知识点
在TypeScript中,可以使用keyof
来获取对象类型的所有键,并且可以将这些键用作索引类型。这样可以创建一个类型安全的映射类型,它将某种类型的键映射到其相应的属性值类型上。
以下是一个简单的例子,演示如何使用keyof
和索引类型来创建一个映射类型:
type Person = {
name: string;
age: number;
location: string;
};
// 使用 keyof 获取 Person 类型的所有键
type PersonKey = keyof Person;
// 使用索引类型创建映射类型
type PersonPropertyType = {
[K in PersonKey]: Person[K];
};
// 现在 PersonPropertyType 将是以下类型
/*
type PersonPropertyType = {
name: string;
age: number;
location: string;
}
*/
// 示例:创建一个具有相同属性的新类型
type NewType = {
[P in keyof PersonPropertyType]?: PersonPropertyType[P];
};
// 使用 NewType 创建一个新变量,它将具有以下类型
/*
type NewType = {
name?: string;
age?: number;
location?: string;
}
*/
// 示例:创建一个具有相同属性的新对象
const newPerson: NewType = {
name: 'Alice',
age: 30,
location: 'Wonderland'
};
在这个例子中,Person
是一个具有三个属性的类型。我们使用keyof
获取这个类型的所有键,然后通过索引类型PersonKey in Person
来创建映射类型PersonPropertyType
。最后,我们使用可选属性P in keyof PersonPropertyType
创建了一个新的类型NewType
,这个类型的属性是可选的,并且与Person
类型的属性相同。
评论已关闭