【发布时间】:2018-10-21 06:32:21
【问题描述】:
我想定义一个接口,允许您提供content 或content_object 但不能同时提供两者。你必须定义一个或另一个。在 TypeScript 中实现这一目标的最简单方法是什么?我知道我可以说内容是 string | object,但如果我可以按照描述定义它,我的其余代码会受益。
interface IModal {
content?: string;
content_object?: object;
}
【问题讨论】:
-
你只是想知道如何实现约束吗?
-
是的。我目前所说的两者都是可选的,但两者也可以存在。我希望它只允许 1,并确保设置了一个。
-
你需要在你的实现类中进行一些验证。 AFAIK,您不能在界面本身中强制执行此类约束。
-
你也可以试试这个:npmjs.com/package/typedcontract
-
嗯,这个包很有趣,但是对于这个场景来说有点矫枉过正。不过还是谢谢。
标签: javascript typescript typescript-typings