你可以有选项对象参数作为成员在类构造函数?



在Typescript中,每个带访问器的构造函数参数都被识别为类成员。

class Test {
constructor(private arg1, private arg2) { }
~~~~          ~~~~ recognized as members
}

你可以使用"options "

class Test2 {
constructor({arg1, arg2}: {arg1: string, arg2: number}) { }
}

class Test3 {
constructor(options: {arg1: string, arg2: number}) { }
}

那么,是否有任何方法可以基于options对象的构造函数中的每个参数来定义成员?

:

class Test4 {
constructor({private arg1, private arg2}: {arg1: string, arg2: number}) { }
}

必须独立定义类成员吗?

class Test4 {
private arg1: string
private arg2: number
constructor({arg1, arg2}: {arg1: string, arg2: number}) {
this.arg1 = arg1
this.arg2 = arg2
}
}

下面是你可以用TypeScript做的最好的事情。

class Test1 {
constructor(private arg1: string) {}
}
class Test2 {
constructor(private options: { arg1: string; arg2: number }) {}
}

我认为你要做的是解构options并在类中设置它们的属性。不能在构造函数的参数中直接解构options的属性。构造函数中的这一行可能会有帮助

class Test2 {
constructor(private options: { arg1: string; arg2: number }) {
Object.assign(this, options)
}
}

但是这个解决方案的问题是,你没有得到this.arg1this.arg2的类型注释,即使它们存在于类中。所以最好还是分别分配每个属性

相关内容

  • 没有找到相关文章

最新更新