To use an object's value as a generic, you can use the keyof
operator to get the name of the object key as a string literal type. You can then use this string literal type as the generic parameter.
For example, consider the following object:
const obj = {
foo: 'hello',
bar: 42,
};
You can use the keyof
operator to get the keys of the object as a string literal union type:
type ObjKey = keyof typeof obj; // "foo" | "bar"
You can then use this ObjKey
type as the generic parameter:
function getValue<T extends keyof typeof obj>(key: T): typeof obj[T] {
return obj[key];
}
console.log(getValue('foo')); // "hello"
console.log(getValue('bar')); // 42
Please start posting anonymously - your entry will be published after you log in or create a new account. This space is reserved only for answers. If you would like to engage in a discussion, please instead post a comment under the question or an answer that you would like to discuss
Asked: 2022-12-14 11:00:00 +0000
Seen: 11 times
Last updated: Jul 15 '21
How can one ensure that sub-classes have uniform method parameters in TypeScript?
Can a TypeScript definition for icon names be provided in MaterialCommunityIcons for React Native?
How can TypeScript be used to save a file in an Excel add-in?
What is the Angular Type script NG Zorro event for radio buttons?
What is the process for implementing a Many to Many relationship using NestJs Sequlize and Mysql2?
What is the method for defining a Fixed length Array in TypeScript?
What difficulties are encountered in the installation of react-router-dom using typescript?