Soh*_*rab 4 javascript undefined typescript aurelia
我想分配一个变量,它是字符串| undefined,到一个字符串变量,如下所示:
private selectedSerialForReplace(): string | undefined {
return this.selectedSerials.pop();
}
luminaireReplaceLuminaire(params: { "serial": string; "newserial": string; }, options?: any): FetchArgs {
............
}
luminaireReplaceLuminaire({serial: this.selectedSerialForReplace(), newserial: response.output});
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
类型'{serial:string | 不确定的; newserial:any; }'不能赋值给'{"serial"类型的参数:string; "newserial":string; }"
我无法更改selectedSerialForReplace()函数以返回任何其他内容.请你帮助我好吗?
小智 8
typescript编译器执行严格的空检查,这意味着您不能将string | undefined变量传递给期望a的方法string.
要解决此问题,您必须undefined在调用之前执行显式检查luminaireReplaceLuminaire().
在你的例子中:
private selectedSerialForReplace(): string | undefined {
return this.selectedSerials.pop();
}
luminaireReplaceLuminaire(params: { "serial": string; "newserial": string; }, options?: any): FetchArgs {
............
}
const serial = this.selectedSerialForReplace();
if(serial !== undefined) {
luminaireReplaceLuminaire({serial, newserial: response.output});
}
Run Code Online (Sandbox Code Playgroud)
如果您确定序列号不能是undefined您可以使用!后缀运算符
luminaireReplaceLuminaire({serial: this.selectedSerialForReplace()!, newserial: response.output});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8663 次 |
| 最近记录: |