为什么TypeScript(2.1.0)会抱怨以下代码?
import Request from "../request/request.ts";
export default class Machine{
private id: number;
private url:string;
private make:string;
private model:string;
private request:any;
constructor(){
var self = this;
this.request = new Request<self>(this.url); //cannot find name self
}
}
答案 0 :(得分:2)
此代码行(从self
更改为this
):
this.request = new Request<this>(this.url);
this
关键字有两种不同的含义:
运行时对this
的实际引用(this.request
和this.url
)
指定编译的this
类型(new Request<this>
)
你混合了这两个含义,这就是为什么它不起作用,如果你想使用self
而不是this
,那么你需要使用typeof
:
this.request = new Request<typeof self>(this.url);