尝试创建一个变量,该变量可以是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;
可以将true/false值或具有任意数量的boolean
类型值对的对象存储到YourType
类型的变量中。