首页 > 解决方案 > 类型脚本对象一次应该允许一个特定的属性

问题描述

我是打字稿的新手,我有一个对象obj,它有 3 个属性。甲,乙,丙。其中b 和 c 不会在一个对象中结合在一起。即我的对象将是

obj = {
    a: 'xxx',
    b: 'xxx'
}

或者

obj = {
    a: 'xxx',
    c: 'xxx'
}

. 如何定义obj.

标签: typescript

解决方案


这不是打字稿的用途,您只能定义对象的结构,但不能定义您想要的关系。

你可以通过两种方式做到这一点。要么你定义两种类型,然后说你的最终对象要么是 A 型,要么是 B 型:

const myObj: typeA | typeB;

在 typeA 中定义属性 a + c,在 typeB 中定义 a + b。

或者你可以这样做:

你定义

obj = {
  'a': string,
  'b'?: string,
  'c'?: string
}

您将两个参数都设置为可选。并且您在组件/.ts文件中进行所有逻辑检查。


推荐阅读