Javascript 如何在Typescript中使用默认值定义可选构造函数参数
是否可以使用默认值的可选构造函数参数,如下所示Javascript 如何在Typescript中使用默认值定义可选构造函数参数,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'); //
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方法是什么?根据定义,具有默认值的参数是可选的,如: 所有必需参数之后的默认初始化参数 被视为可选的,就像可选参数一样,可以 调用各自的函数时省略 构造函数和其他函数的情况相同,因此在您的情况下:
export class Test {
constructor(private foo: string = "foo", private bar: string = "bar") {}
}
您可以在args后面添加问号,这样更简洁。如果添加默认参数,默认情况下它应该是可选的
export class Test {
foo: string;
bar: string;
constructor(foo?: string, bar?: string) {
this.foo = foo;
this.bar = bar;
}
}
你是否尝试过构造函数(private-foo?foo:string=“foo”,private-bar?bar:string=“bar”){}?
private-foo=“foo”,private-bar=“bar”
我猜类型可以在这里推断出来。根据我个人的偏好,我喜欢总是定义类型,即使很明显,你是如何使用解构参数来定义的,尽可能简明扼要地说,没有?