我尝试这样做:
export class MapperObject<V> {
public obj: V = {};
}
它不起作用。此外,我需要填写像:
这样的对象this.obj[key] = "1";
如果没有初始化,则会调用错误。
答案 0 :(得分:1)
简短的回答是,您不能以类型安全的方式执行此操作,因为您不知道所需的V
字段。您可以使用类型断言强制初始化,但它并不完全安全:
export class MapperObject<V> {
public obj: V = {} as any;
}
let m = new MapperObject<{ requiredProp: string }>();
m.obj.requiredProp // undefined even though it is required
安全的解决方案是让构造函数需要传递obj
的默认值:
export class MapperObject<V> {
constructor(public obj: V) {}
}