文字列である変数を割り当てたい|次のように、未定義の文字列変数に:
private selectedSerialForReplace(): string | undefined {
return this.selectedSerials.pop();
}
luminaireReplaceLuminaire(params: { "serial": string; "newserial": string; }, options?: any): FetchArgs {
............
}
luminaireReplaceLuminaire({serial: this.selectedSerialForReplace(), newserial: response.output});
私はこのエラーを受け取ります:
タイプ{の引数:serial:string |未定義;ニュース:任意; } 'は、タイプ' {"serial":文字列のパラメーターには割り当てられません。 "newserial":文字列; } '
SelectedSerialForReplace()関数を変更して他のものを返すことができません。手伝っていただけませんか?
TypeScriptコンパイラは厳密なnullチェックを実行します。つまり、string
を期待するメソッドに_string | undefined
_変数を渡すことはできません。
これを修正するには、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
でなかったと確信している場合は、 !
後置演算子
luminaireReplaceLuminaire({serial: this.selectedSerialForReplace()!, newserial: response.output});