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") { … }. Не те, щоб ви цього не знали, а просто вказали на загальний випадок проведення ОП.
lastName?: stringцьому може бути колись так, як сказав СтівФентон, "обробляє порожні рядки, невизначені рядки та нульові значення".
params.lastName = params.lastName || 'smith';я використовую
params.lastName = params.lastName || 'smith';насправді досить чудове - воно обробляє порожні рядки, невизначені рядки та нульові значення.