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'});
Bunun işe yarayabileceğini hayal etmiştim:
function sayName(params: {firstName: string; lastName: string = 'smith'}) {
Açıkçası bunlar açık argümanlarsa, bunu şu şekilde yapabilirsiniz:
function sayName(firstName: string, lastName = 'smith') {
var name = firstName + lastName;
alert(name);
}
sayName('bob');
Ve coffeescript'te koşullu varlık operatörüne erişebilirsiniz, böylece şunları yapabilirsiniz:
param.lastName ?= 'smith'
Hangi javascript derler:
if (param.lastName == null) {
param.lastName = 'smith';
}
if(typeof x === "undefined") { … }. Bunu bilmediğiniz için değil, sadece OP'nin genel durumunu işaret ediyoruz.
lastName?: stringSteveFenton'un "boş dizeleri, tanımsız dizeleri ve null değerleri işlediğini" söylediği gibi olabilir.
params.lastName = params.lastName || 'smith';kullandığım desen
params.lastName = params.lastName || 'smith';aslında gayet iyi - boş dizeleri, tanımsız dizeleri ve boş değerleri işliyor.