Typescript 类型脚本中的两个类型变量
我有一个函数参数,它接受两种类型:Typescript 类型脚本中的两个类型变量,typescript,types,Typescript,Types,我有一个函数参数,它接受两种类型:string | string[]。我将此参数用于只接受string类型的烤面包机服务,因此当我使用join(“”)时,我遇到一个错误:属性“join”在类型“string”| string[]上不存在。类型“string”上不存在属性“join”。并且无法编译应用程序 showToaster(msg: string, customClass: string | string[]) { let cstmClass: any; s
string | string[]
。我将此参数用于只接受string
类型的烤面包机服务,因此当我使用join(“”)
时,我遇到一个错误:属性“join”在类型“string”| string[]上不存在。类型“string”上不存在属性“join”。
并且无法编译应用程序
showToaster(msg: string, customClass: string | string[]) {
let cstmClass: any;
switch (typeof customClass) {
case 'string':
cstmClass = customClass;
break;
case 'object':
cstmClass = customClass.join(' ');
break;
}
this.toastrService.show(msg, null, {
toastClass: cstmClass,
timeOut: 3500
});
}
用于确定类型:
if(Array.isArray(customClass)) {
cstmClass = customClass.join(' ');
}
else {
cstmClass = customClass;
}
编译数组的原因是
|
选项仅公开两种类型共享的属性和方法。检查类型是否为对象
无效的原因是对象
没有join
方法。只有一个改进:Array.isArray(customClass)?cstmClass=customClass.join(“”):cstmClass=customClass;您甚至可以将其进一步改进为:var cstmClass=Array.isArray(customClass)?customClass.join(“”):customClass代码>