网站搜索

模块 - 你如何引用 lib.d.ts 类型


在 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
      }
   }
}

类似的问题在一年前曾在 Codeplex 上被提出,但我无法得知自那以后是否有任何变化,或者是否存在一种解决方法(不涉及重命名 SomeModule.File)。

答案#1

自 TypeScript 1.4 起,你也可以使用类型别名:

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

答案#2

自 TypeScript 3.4 起,你可以使用 globalThis 来访问这些类型:

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

请参见 https://devblogs.microsoft.com/typescript/announcing-typescript-3-4/#type-checking-for-globalthis

相关文章