是否可以使用联合类型作为接口(interface)中的键?例如,我想做这样的事情:
interface IMargin {
[key in 'foo' | 'bar']: boolean;
}
但是我收到了这个错误:
A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type.ts(1169)
有什么办法解决这个问题吗?
用例是将值数组转换为接口(interface):
const possibleTypes = ['foo', 'bar'];
interface Types {
foo?: boolean;
bar?: boolean;
}
最佳答案
您可以使用对象类型而不是接口(interface),这在大多数情况下是可以互换的:
type IMargin = {
[key in 'foo' | 'bar']: boolean;
}
关于typescript - 联合类型作为界面中的关键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55023610/