I'm looking to create a object type UiPrefixed
where all the keys in the object have to be prefixed with /^ui\:. /
, is this possible?
type UiPrefixed = {
[`ui:*`]: any
}
const e: UiPrefixed = {
'ui:meow': true,
'ui:woof': true
}
CodePudding user response:
Yes. This is one of the scenarios where template literal types can come in handy: ui:${string}
:
type UiPrefixed = {
[key: `ui:${string}`]: any
}
const e: UiPrefixed = {
'ui:meow': true,
'ui:woof': true
}
See proof-of-concept on TypeScript Playground.