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'});
Wyobraziłem sobie, że coś takiego może działać:
function sayName(params: {firstName: string; lastName: string = 'smith'}) {
Oczywiście, gdyby były to proste argumenty, można to zrobić za pomocą:
function sayName(firstName: string, lastName = 'smith') {
var name = firstName + lastName;
alert(name);
}
sayName('bob');
A w coffeescript masz dostęp do operatora warunkowego istnienia, dzięki czemu możesz:
param.lastName ?= 'smith'
Który kompiluje się w javascript:
if (param.lastName == null) {
param.lastName = 'smith';
}
if(typeof x === "undefined") { … }. Nie dlatego, że tego nie wiesz, ale po prostu wskazując ogólny przypadek PO.
lastName?: stringmoże być tylko tak, jak powiedział SteveFenton „obsługuje puste ciągi, niezdefiniowane ciągi i wartości zerowe”.
params.lastName = params.lastName || 'smith';używam wzoru
params.lastName = params.lastName || 'smith';jest w rzeczywistości całkiem dobre - obsługuje puste ciągi, niezdefiniowane ciągi i wartości zerowe.