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") { … }。并不是您不知道,而是指出了OP的一般情况。
lastName?: string它只能像SteveFenton所说的那样“处理空字符串,未定义的字符串和空值”。
params.lastName = params.lastName || 'smith';,我使用的是模式
params.lastName = params.lastName || 'smith';实际上还不错-它可以处理空字符串,未定义的字符串和空值。