I'm trying to generate "dynamic object key" based of "prop key value" by picking specific object key value.
So let's say I pass in { name: 'someEntity', unrelatedKey: 123 } and I would like to return { someEntity: 'ok' }. How would one do that so the return value is typescript type defined? I've tried something like this but it does not work:
type GetExampleProps = {
name: string
unrelatedKey: number
}
type GetExampleRes<T> = {
[key: T]: string
}
function getExample<T extends GetExampleProps> (props: T): GetExampleRes<T['name']> {
return {
[props.name]: 'ok'
}
}
const example = getExample({ name: 'someEntity', unrelatedKey: 123 })
example.someEntity // should be valid type string
example.hello // should be invalid, missing key