【问题标题】:Typescript Interface: Exactly one optional parameter is requiredTypescript 接口:只需要一个可选参数
【发布时间】:2018-10-21 06:32:21
【问题描述】:

我想定义一个接口,允许您提供contentcontent_object 但不能同时提供两者。你必须定义一个或另一个。在 TypeScript 中实现这一目标的最简单方法是什么?我知道我可以说内容是 string | object,但如果我可以按照描述定义它,我的其余代码会受益。

interface IModal {
    content?: string;
    content_object?: object;
}

【问题讨论】:

  • 你只是想知道如何实现约束吗?
  • 是的。我目前所说的两者都是可选的,但两者也可以存在。我希望它只允许 1,并确保设置了一个。
  • 你需要在你的实现类中进行一些验证。 AFAIK,您不能在界面本身中强制执行此类约束。
  • 你也可以试试这个:npmjs.com/package/typedcontract
  • 嗯,这个包很有趣,但是对于这个场景来说有点矫枉过正。不过还是谢谢。

标签: javascript typescript typescript-typings


【解决方案1】:
type IModal = { content: string; content_object?: undefined } |
              { content_object: object; content?: undefined }

这个答案只包含代码,因此根据自动化系统是不好的。

【讨论】:

    猜你喜欢
    • 2018-09-06
    • 1970-01-01
    • 1970-01-01
    • 2012-06-23
    • 1970-01-01
    • 2021-09-10
    • 2011-10-16
    • 2020-05-23
    • 1970-01-01
    相关资源
    最近更新 更多