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
对象,而是取消引用的变量。
如果您想让它可选地向函数传递任何内容,请添加?
对于该类型中的所有键,并添加默认值={}
在类型声明之后:
function sayName({first='Bob',last='Smith'}: {first?: string; last?: string}={}){
var name = first + " " + last;
alert(name);
}
sayName();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)