我创建了此类:
export class ModelTransformer {
constructor(private readonly hostelTransformer: HostelTransformer) {}
static transform(hostel: Hostel): Hotel {
return hostelTransformer.transform(hostel);
}
}
但是当我编译它时,会出现以下编译错误:
错误TS2304:找不到名称“ hostelTransformer”。
我也尝试过
static transform(hostel: Hostel): Hotel {
return this.hostelTransformer.transform(hostel);
}
但随后出现错误:
error TS2339: Property 'hostelTransformer' does not exist on type 'typeof ModelTransformer'.
答案 0 :(得分:1)
您不能在静态方法内访问 instance 属性。
在构造函数中使用private readonly hostelTransformer: HostelTransformer
时,它会在ModelTransformer
类的实例上进行。像这样
constructor(hostelTransformer) {
this.hostelTransformer = hostelTransformer;
}
您不能使用return this.hostelTransformer.transform(hostel)
,因为transform
是静态方法。调用ModelTransformer.transform()
时,this
将是ModelTransformer
,而不是类的实例。
如果要使用该属性,则需要将方法设为非静态