我正在将现有的JS代码迁移到Typescript。
假设现有的JS代码是这样的:
// Original JS class
class Test1 {
constructor({ foo = 'a' }) {
this.foo = foo;
}
}
我正在尝试尽可能地使用TypeScript中引入的访问修饰符来定义类构造函数,以便我可以直接分配类成员。
// This will assign this.foo automatically.
// But the argument becomes different {foo} vs foo.
class Test2 {
public constructor(private foo: string = 'a') {}
}
但是问题是Test2
现在有不同的参数,这破坏了现有代码。
我不能像这样直接从对象参数分配成员:
// I want something like this... but error.
class Test3 {
public constructor({ private foo: string = 'a' }) {}
}
因此,我的目标是在保留参数签名this.foo = foo
的同时避免使用constructor({foo})
。有没有好的解决方法?
答案 0 :(得分:3)
这似乎是一个带打字稿的开放issue,不幸的是,您将必须执行以下操作:
class Test4 {
private foo: string;
public constructor({ foo = 'a' }) {
this.foo = foo;
}
}