【发布时间】:2021-01-20 05:40:51
【问题描述】:
有没有一种简单的方法可以只允许一个值在数组中出现一次?
假设我已经定义了这样的类型:
array: {
value: boolean;
label: string;
}[];
我想确保在该数组中,只有一个值可以为真。如果一个值为真,则其他值必须为假。因此,例如,我想允许这样做:
const arr : array = [
{ value: false, label: '1' },
{ value: true, label: '2' },
{ value: false, label: '3' },
];
但我希望 typescript 失败,并说如果我有这样的数组,则只有一个值可以为真:
const arr2 : array = [
{ value: true, label: '1' },
{ value: true, label: '2' },
{ value: false, label: '3' },
];
这在打字稿中可行吗?
编辑:可以肯定的是,我只想通过类型来确保这一点,而不是其他逻辑
【问题讨论】:
-
不,我认为这在类型系统中是不可能的。
-
不是天生的,但是您可以使用在索引处设置
value: true的方法构建一个类。该方法可以先检查是否违反规则并抛出错误。 -
您的阵列是否始终具有固定的小尺寸?
-
数组大小不固定,但可能永远不会超过10个元素
标签: javascript typescript