如何分配字符串 |未定义为 TypeScript 中的字符串?
How to assign string | undefined to string in TypeScript?
我想给一个变量赋值,它是string |未定义,到字符串变量,如您在此处看到的:
private selectedSerialForReplace(): string | undefined {
return this.selectedSerials.pop();
}
luminaireReplaceLuminaire(params: { "serial": string; "newserial": string; }, options?: any): FetchArgs {
............
}
luminaireReplaceLuminaire({serial: this.selectedSerialForReplace(), newserial: response.output});
我收到此错误:
Argument of type '{ serial: string | undefined; newserial: any; }' is
not assignable to parameter of type '{ "serial": string; "newserial":
string; }'
我无法将 selectedSerialForReplace() 函数更改为 return 任何其他内容。你能帮帮我吗?
typescript 编译器执行严格的 null 检查,这意味着您不能将 string | undefined
变量传递到需要 string
.
的方法中
要解决此问题,您必须在调用 luminaireReplaceLuminaire()
.
之前对 undefined
执行显式检查
在你的例子中:
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});
}
如果你确定序列号不能是undefined
你可以使用!
post-fix operator
luminaireReplaceLuminaire({serial: this.selectedSerialForReplace()!, newserial: response.output});
我想给一个变量赋值,它是string |未定义,到字符串变量,如您在此处看到的:
private selectedSerialForReplace(): string | undefined {
return this.selectedSerials.pop();
}
luminaireReplaceLuminaire(params: { "serial": string; "newserial": string; }, options?: any): FetchArgs {
............
}
luminaireReplaceLuminaire({serial: this.selectedSerialForReplace(), newserial: response.output});
我收到此错误:
Argument of type '{ serial: string | undefined; newserial: any; }' is not assignable to parameter of type '{ "serial": string; "newserial": string; }'
我无法将 selectedSerialForReplace() 函数更改为 return 任何其他内容。你能帮帮我吗?
typescript 编译器执行严格的 null 检查,这意味着您不能将 string | undefined
变量传递到需要 string
.
要解决此问题,您必须在调用 luminaireReplaceLuminaire()
.
undefined
执行显式检查
在你的例子中:
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});
}
如果你确定序列号不能是undefined
你可以使用!
post-fix operator
luminaireReplaceLuminaire({serial: this.selectedSerialForReplace()!, newserial: response.output});