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'});
Avevo immaginato che qualcosa del genere potesse funzionare:
function sayName(params: {firstName: string; lastName: string = 'smith'}) {
Ovviamente se questi fossero semplici argomenti, potresti farlo con:
function sayName(firstName: string, lastName = 'smith') {
var name = firstName + lastName;
alert(name);
}
sayName('bob');
E in coffeescript hai accesso all'operatore dell'esistenza condizionale, quindi puoi fare:
param.lastName ?= 'smith'
Che compila nel javascript:
if (param.lastName == null) {
param.lastName = 'smith';
}
if(typeof x === "undefined") { … }. Non che tu non lo sappia, ma indica solo il caso generale del PO.
lastName?: stringsua può essere sempre e solo come ha detto SteveFenton "gestisce stringhe vuote, stringhe indefinite e valori nulli".
params.lastName = params.lastName || 'smith';è lo schema che uso
params.lastName = params.lastName || 'smith';realtà è piuttosto corretta: gestisce stringhe vuote, stringhe non definite e valori null.