繁体   English   中英

如何声明布尔 OR 对象类型?

[英]How to declare a boolean OR object type?

试图创建一个变量,它可以是true/false ,也可以是booleans的对象。 我对 TS 不是很有经验,这样的事情可能吗?

variableA: { a: boolean, b: boolean } | boolean

决定暂时解决它,但很想知道我的语法或方法是否错误。

这里的例子突出了主要问题

是的,它可以像这样。

你也可以有这样的界面:

interface Iobj {
    a: boolean;
    b: boolean;
}

let myVar: Iobj | boolean;

更新:

if((treeObject.tabA as optionType)?.optionA) {
    console.log('do something based on optionA')
}

是的你可以。 您需要像这样定义自定义type

type variableA = { a: boolean, b: boolean } | boolean

var f:variableA = false;

console.log(f);

f = {a:true, b:false};

console.log(f);

请注意, variableA是类型不变量。

操场

你也可以这样写:

interface ObjectOfBooleans {
    [key: string]: boolean;
};

type YourType = ObjectOfBooleans | boolean;

或更短:

type YourType = Record<string, boolean> | boolean;

您可以将真/假值或具有任意数量的boolean类型值对的对象存储到类型为YourType的变量中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM