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этого может быть только когда-то, как сказал SteveFenton «обрабатывает пустые строки, неопределенные строки и нулевые значения».
params.lastName = params.lastName || 'smith';это шаблон, который я использую
params.lastName = params.lastName || 'smith';на самом деле довольно хорошо - оно обрабатывает пустые строки, неопределенные строки и нулевые значения.