Module 如何引用lib.d.ts类型

Module 如何引用lib.d.ts类型,module,typescript,Module,Typescript,有没有办法在Typescript中引用lib.d.ts类型?我正在创建一个名为File的类,它使用lib.d.ts文件类型 File.ts module SomeModule { export class File{ ... public foo(file:lib.ts.File) { // do stuff } ... public bar(file:SomeModule.File){ /

有没有办法在Typescript中引用lib.d.ts类型?我正在创建一个名为File的类,它使用lib.d.ts文件类型

File.ts

module SomeModule {
   export class File{
      ...
      public foo(file:lib.ts.File) {
          // do stuff
      }
      ...
      public bar(file:SomeModule.File){
          // do some more stuff
      }
   }
}

一年多前,我在上问了一个类似的问题,但我无法确定自那时以来是否有任何变化,或者是否存在解决方法(不涉及重命名
SomeModule.File
)。

目前这是不可能的(TypeScript 1.3)

GitHub上有一个问题,您可能希望阅读关于此行为的建议


在该问题线程中有两个建议,一个是
global::File
,另一个是
global.File

有解决方法。您可以使用声明的(没有生成JS!)全局变量捕获类型信息并在本地使用它:

declare var FileTypeCapture:File;

module SomeModule {
   export class File{
      public foo(file:typeof FileTypeCapture) {
          // do stuff

      }
      public bar(file:SomeModule.File){
          // do some more stuff
      }
   }
}

由于TypeScript 1.4,您还可以使用类型别名:

type g_Event = Event;
module Lib {
    export interface Event extends g_Event {
        target: Element;
    }
    export function create(e: g_Event): Event{
        //...
    }
}

由于TypeScript 3.4,您可以使用globalThis访问以下类型:

module SomeModule {
   export class File{
      ...
      public foo(file: globalThis.File) {
          // do stuff
      }
      ...
      public bar(file: File){
          // do some more stuff
      }
   }
}

请参见

这比公认的答案更清晰(尽管我知道在最初编写该答案时是不可能的)。如果有某种类型的global::prefix可用,而不必使用类型别名,那就更好了。