Jea*_*eri 44 javascript typescript
是否可以使用默认值的可选构造函数参数,如下所示
export class Test {
constructor(private foo?: string="foo", private bar?: string="bar") {}
}
Run Code Online (Sandbox Code Playgroud)
这给了我以下错误:
参数不能有问号和初始化器.
我想创建像这样的实例
x = new Test(); // x.foo === 'foo'
x = new Test('foo1'); // x.foo === 'foo1'
x = new Test('foo1', 'bar1');
Run Code Online (Sandbox Code Playgroud)
实现这一目标的正确打字方式是什么?
Nit*_*mer 62
根据定义,具有默认值的参数是可选的,如文档中所述:
所有必需参数之后的默认初始化参数被视为可选参数,就像可选参数一样,在调用它们各自的函数时可以省略
对于构造函数和其他函数一样,所以在你的情况下:
export class Test {
constructor(private foo: string = "foo", private bar: string = "bar") {}
}
Run Code Online (Sandbox Code Playgroud)
您可以在参数后面添加问号,这样更清晰。如果添加默认参数,默认情况下它应该是可选的。
export class Test {
foo: string;
bar: string;
constructor(foo?: string, bar?: string) {
this.foo = foo;
this.bar = bar;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34692 次 |
| 最近记录: |