typescript - 联合类型作为界面中的键?
问题描述
是否可以使用联合类型作为接口中的键?例如,我想做这样的事情:
interface IMargin {
[key in 'foo' | 'bar']: boolean;
}
但我收到了这个错误:
接口中的计算属性名称必须引用其类型为文字类型或“唯一符号”类型的表达式。ts(1169)
有没有办法解决?
用例是将一组值转换为接口:
const possibleTypes = ['foo', 'bar'];
interface Types {
foo?: boolean;
bar?: boolean;
}
解决方案
您可以使用对象类型而不是接口,它们大多是可互换的:
type IMargin = {
[key in 'foo' | 'bar']: boolean;
}
推荐阅读
- c# - 从字幕中删除重复或重复的订单号
- python - 在 Python 中求解具有线性不等式约束的最小二乘
- javascript - 如何防止函数使用旧的函数参数
- tensorflow - 使用 Imagedatagenerator 时的多输出模型
- javascript - 在移动导航栏中使用 flex 时如何创建边界线?
- c++ - 优化 Windows 上的 memcpy (MSVC++)
- javascript - 给定一个数组和一个值,删除该值的所有实例并返回新的长度
- python - 熊猫df不识别列的长度
- javascript - 复选框:复选框全选并取消选择不影响所有
- electron - Electron - 使用 Net 发出请求时抛出 ERR_FAILED