东莞住房建设网站的网,成都平面设计公司排行,东昌府企业做网站推广,有关网站建设的视频keyof 是 TypeScript 中的一个操作符#xff0c;它用于获取一个类型的所有属性名#xff08;键#xff09;组成的联合类型。
使用 keyof 操作符可以在编译时获得一个类型的属性名#xff0c;然后将这些属性名作为联合类型进行处理或操作。它可以用于访问对象的属性#x…keyof 是 TypeScript 中的一个操作符它用于获取一个类型的所有属性名键组成的联合类型。
使用 keyof 操作符可以在编译时获得一个类型的属性名然后将这些属性名作为联合类型进行处理或操作。它可以用于访问对象的属性定义映射类型以及进行类型约束等场景。
下面是一些示例来说明 keyof 的作用 访问对象的属性 interface Person {name: string;age: number;
}const person: Person {name: Alice,age: 25,
};type PersonKeys keyof Person; // 联合类型name | ageconsole.log(person[name]); // 访问对象属性在上述示例中PersonKeys 类型通过 keyof Person 获取了 Person 接口的属性名即 name 和 age作为联合类型。 定义映射类型 interface Person {name: string;age: number;
}type ReadonlyPerson {readonly [K in keyof Person]: Person[K];
};const readonlyPerson: ReadonlyPerson {name: Alice,age: 25,
};readonlyPerson.name Bob; // 错误只读属性无法修改在上述示例中通过使用 keyof Person我们创建了一个映射类型 ReadonlyPerson将 Person 接口的所有属性都设置为只读。 进行类型约束 function getPropertyT, K extends keyof T(obj: T, key: K): T[K] {return obj[key];
}const person: Person {name: Alice,age: 25,
};const name getProperty(person, name); // name 的类型为 string
const age getProperty(person, age); // age 的类型为 number
const invalid getProperty(person, email); // 错误email 不是 Person 的属性名在上述示例中getProperty 函数使用了两个泛型参数 T 和 K extends keyof T。通过使用 keyof T我们对第二个参数 key 进行了类型约束确保它必须是 T 类型的属性名。
总结起来keyof 操作符在 TypeScript 中用于获取一个类型的所有属性名组成的联合类型。它可以用于访问对象的属性定义映射类型以及进行类型约束等场景提供了更灵活和安全的类型操作。