We would like to get object value type.
Assume this object:
const query = { getUserAndBook: { user: { name: 'acro5piano' }, book: { name: 'acro5piano' } } } If we would like to get typeof query.getUserAndBook programmatically, we can write like this:
type Query = typeof query.getUserAndBook But if the key of query (this time getUserAndBook) may vary, how to pick the type of it?
...We can do:
export type GetObjectOneLevelDownType<T extends {}, K extends keyof T> = { value: T[K] }['value'] The trick is that we explicitly set value property and pick it.
The following much simple code does not work:
type GetObjectOneLevelDownType<T extends {}, K extends keyof T> = T[K]
Top comments (0)