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';
}
实际上,现在似乎有一种简单的方法。以下代码可在TypeScript 1.5中使用:
function sayName({ first, last = 'Smith' }: {first: string; last?: string }): void {
const name = first + ' ' + last;
console.log(name);
}
sayName({ first: 'Bob' });
诀窍是首先将要从参数对象中选择的键放在方括号中,并key=value
包含所有默认值。然后加上:
和类型声明。
这与您尝试执行的操作有些不同,因为params
您没有拥有完整的对象,而是拥有了取消引用的变量。
如果要将传递给函数的内容设置为可选,请?
为类型中的所有键添加a,并={}
在类型声明后添加默认值:
function sayName({first='Bob',last='Smith'}: {first?: string; last?: string}={}){
var name = first + " " + last;
alert(name);
}
sayName();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句