如何制作一个对象中所有键都有相同前缀的typescript类型



我想创建一个对象类型UiPrefixed,其中对象中的所有键都必须以/^ui:.+/为前缀,这可能吗?

type UiPrefixed = {
[`ui:*`]: any
}
const e: UiPrefixed = {
'ui:meow': true,
'ui:woof': true
}

是。这是模板文字类型可以派上用场的场景之一:ui:${string}:

type UiPrefixed = {
[key: `ui:${string}`]: any
}
const e: UiPrefixed = {
'ui:meow': true,
'ui:woof': true
}

请参阅TypeScript游乐场上的概念验证。

相关内容

最新更新