为作为参数传递的TypeScript对象设置默认值

AJP:
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';
}
jpadvo:

实际上,现在似乎有一种简单的方法。以下代码可在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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Typescript为作为参数传递给另一个函数的函数设置默认值

如何将 VPC 的 ID 作为参数传递给 Cluster.template 以设置为默认值?

Python-为作为函数其他参数的函数传递参数的默认值

PHP:检查是否为null作为参数传递或分配为默认值

如何在将哈希作为参数传递给 ruby 方法时设置默认值?

JavaScript-传递给箭头函数的已分解对象的默认值作为参数

无法将空对象设置为Record类型的参数的默认值

传递NULL时为参数分配默认值

错误消息:为日期参数SSRS设置默认值

为哈希表参数设置默认值

将参数默认值设置为日期/时间

Bash可选参数并将其设置为默认值

设置函数对象参数的key的默认值

在 React Typescript 中的 State 对象中设置默认值

为猫鼬中的对象数组设置默认值

如何为作为函数参数传递的对象的所有未定义属性分配默认值?

swagger对象是否可以在swagger-ui中具有默认值作为参数传递?

函数作为函数参数的默认值

函数作为参数的默认值

如何将Argparse参数的默认值设置为位置参数的值?

如何在R中使函数从全局环境中删除所有对象(默认值和作为参数传递的对象除外)

设置枚举参数的默认值

飞镖设置参数的默认值

设置参数的默认值和类型

将默认参数发送为null并使用函数中设置的默认值

如何记录为参数默认值

使用默认值键入对象参数

在F#中,是否可以将对可变的默认值的引用作为参数传递?

传递带有默认值的函数作为忽略它们的参数