首页 > 解决方案 > 打字稿对象作为函数参数

问题描述

transforms: {
   webpackConfiguration?: ExecutionTransformer<webpack.Configuration>,
} = {} 

在从 Angular 项目中读取一些代码时,我发现上面的这段代码作为函数参数传递。在我的理解中,参数transforms是一个具有一个键值对的对象,?这是可选的手段,webpackConfiguration这让我感到困惑,因为它是唯一的键值对条目。= {}上面代码末尾的意思是什么?

标签: javascriptangulartypescriptobjectarguments

解决方案


transforms如果您不提供它,它是参数的默认值。后面的任何内容=都被认为是默认值,因此在这种情况下,如果您不将值传递给函数,transforms则将设置为新的空对象。{}以下面的函数fun为例:

function fun(arg1: { bool?: true } = {}, arg2: boolean = false) {

}

如果您不提供arg1,它将被设置为{},如果您不提供arg2,它将false在函数中设置为fun


推荐阅读