我可以创建一个类型,它只允许对象在键中具有唯一值的数组。
所以这是可以的:
[{ a: 1 }, { a: 2 }, { a: 3 }] // ✅
[{ a: true }, { a: "nice" }, { a: 3 }] // ✅
这是不允许的:
[{ a: 1 }, { a: 1 }, { a: 3 }] // ❌ Duplicated 1
[{ a: true }, { a: "nice" }, { a: true }] // ❌ Duplicated true
我可以创建一个类型,它只允许对象在键中具有唯一值的数组。
所以这是可以的:
[{ a: 1 }, { a: 2 }, { a: 3 }] // ✅
[{ a: true }, { a: "nice" }, { a: 3 }] // ✅
这是不允许的:
[{ a: 1 }, { a: 1 }, { a: 3 }] // ❌ Duplicated 1
[{ a: true }, { a: "nice" }, { a: true }] // ❌ Duplicated true
2条答案
按热度按时间aiazj4mn1#
不可以,不能通过创建自定义类型在TypeScript中强制实施此类限制。TypeScript仅在编译时提供类型检查,而不执行基于值的检查。您必须自己在代码中实现此类验证逻辑。
oogrdqng2#
在我早期的Typescript中,我经常遇到这个问题。我想你可能会对Maps感兴趣。同时记住,这是TypeScript,与Javascript相比,“type”是非常重要的。我在你的示例中没有看到类型,所以我不清楚你想要什么。下面是一个使用Maps的示例,可能会对你有所帮助或给予你一些想法。当然,你也可以为此创建自己的类。这将允许你想要的任何东西。并通过提供类型来利用Typescript。一开始很烦人,但真的很有帮助。
它将显示: