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');
在咖啡脚本中,您可以访问条件存在运算符,因此可以这样做:
param.lastName ?= 'smith'
编译成javascript:
if (param.lastName == null) {
param.lastName = 'smith';
}
原文由 AJP 发布,翻译遵循 CC BY-SA 4.0 许可协议
实际上,现在似乎有一个简单的方法。以下代码适用于 TypeScript 1.5:
诀窍是首先将要从参数对象中选择的键放在括号中,使用
key=value
表示任何默认值。接下来是:
和类型声明。这与您尝试做的有点不同,因为您没有完整的
params
对象,而是有取消引用的变量。如果您想将任何内容传递给函数,请为该类型中的所有键添加
?
并在类型声明后添加默认值={}
: