Javascript 此类型的TypeScript泛型

Javascript 此类型的TypeScript泛型,javascript,typescript,Javascript,Typescript,为什么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 = th

为什么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
  }
}
从“./Request/Request.ts”导入请求;
导出默认类计算机{
私人id:号码;
私有url:string;
私人制作:字符串;
私有模型:字符串;
私人要求:任何;
构造函数(){
var self=这个;
this.request=新请求(this.url);//找不到名称self
}
}
这行代码(从
self
更改为
This
):

这行代码(从
self
更改为
This
):


编译器不推断self的类型是一个bug吗?有什么理由不应该这样做吗?不,这不是一个bug,
self
是一个变量,但是你放在泛型类型中的应该是一个类型,所以它不工作,但是
typeof self
工作。编译器不推断self的类型是一个bug吗?有什么理由不应该这样做吗?不,这不是一个bug,
self
是一个变量,但是你放在泛型类型中的应该是一个类型,所以它不起作用,但是
typeof self
起作用。
this.request = new Request<this>(this.url);
this.request = new Request<typeof self>(this.url);