如何对Typescript中的Object.assign使用stringPropertyInitialization
我有一门课如何对Typescript中的Object.assign使用stringPropertyInitialization,typescript,tsconfig,Typescript,Tsconfig,我有一门课 export class Config{ public doSomething: boolean; public doSomethingOptionally?: boolean constructor(data: { doSomething: boolean, doSomethingOptionally?: boolean }) { Object.assign(this, data); } }
export class Config{
public doSomething: boolean;
public doSomethingOptionally?: boolean
constructor(data: {
doSomething: boolean,
doSomethingOptionally?: boolean
}) {
Object.assign(this, data);
}
}
以这种方式将数据传递给构造函数非常简单,IntelliSense非常智能,不允许开发人员在不指定doSomething
属性的情况下创建Config
类的新实例,但它可以不指定doSomething
所有这些都非常有效,但只要我在tsconfig.json
中启用strictPropertyInitialization
,我就会收到一堆错误,因为doSomething
没有初始化
这方面最好的解决方法是什么
我不想:
doSomething:boolean={}as any代码>
数据
属性之外的构造函数中赋值,因为可能有很多参数,调用构造函数对我来说太难看了doSomething
接受未定义的值一种解决方案是让编译器知道哪些属性是通过
对象初始化的
export class Config{
public doSomething!: boolean;
public doSomethingOptionally?: boolean
constructor(data: {
doSomething: boolean,
doSomethingOptionally?: boolean
}) {
Object.assign(this, data);
}
}