function sayName(params: {firstName: string; lastName?: string}) {
params.lastName = params.lastName || 'smith'; // <<-- any better alternative to this?
var name = params.firstName + params.lastName
alert(name);
}
sayName({firstName: 'bob'});
私はこのようなものがうまくいくと想像していました:
function sayName(params: {firstName: string; lastName: string = 'smith'}) {
明らかにこれらが明白な議論であるなら、あなたはそれを次のようにして行うことができます:
function sayName(firstName: string, lastName = 'smith') {
var name = firstName + lastName;
alert(name);
}
sayName('bob');
そして、coffeescriptでは、条件付き存在演算子にアクセスできるため、次のことができます。
param.lastName ?= 'smith'
これはjavascriptにコンパイルされます。
if (param.lastName == null) {
param.lastName = 'smith';
}
if(typeof x === "undefined") { … }です。あなたはそれを知らないのではなく、OPの一般的なケースを指摘するだけです。
lastName?: stringが、SteveFentonが「空の文字列、未定義の文字列、およびnull値を処理する」と言った場合にのみ、これが発生する可能性があります。
params.lastName = params.lastName || 'smith';、私が使用するパターンです
params.lastName = params.lastName || 'smith';は実際にはかなり良いです-それは空の文字列、未定義の文字列とnull値を処理します。