javascript - 如何在 Typescript 中使用默认值定义可选的构造函数参数

标签 javascript typescript

是否可以像这样拥有带有默认值的可选构造函数参数

export class Test {
    constructor(private foo?: string="foo", private bar?: string="bar") {}
}

这给了我以下错误:

参数不能有问号和初始化。

我想创建像

这样的实例
x = new Test();               // x.foo === 'foo'            
x = new Test('foo1');         // x.foo === 'foo1'
x = new Test('foo1', 'bar1');

实现此目标的正确 typescript 方法是什么?

最佳答案

根据定义,具有默认值的参数是可选的,如stated in the docs :

Default-initialized parameters that come after all required parameters are treated as optional, and just like optional parameters, can be omitted when calling their respective function

构造函数和其他函数一样,所以在你的情况下:

export class Test {
    constructor(private foo: string = "foo", private bar: string = "bar") {}
}

关于javascript - 如何在 Typescript 中使用默认值定义可选的构造函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43326380/

相关文章:

javascript - 匹配最多 2 位小数的数字的正则表达式

javascript - AG-Grid(企业)列菜单监听器

javascript/jquery 将隐藏的输入组合为 var

javascript - 流类型 : Field between square brackets

javascript - 在 Typescript 严格模式函数上访问被调用者?

javascript - 将类添加到表列

javascript - 如何在数字正则表达式中允许空格?

javascript - 元素引用一个值,但在这里被用作类型

javascript - Redux reducer 没有从 React 组件外部的调度更新 React 组件中的 prop 值

angular - 插值数据不起作用