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

时间:2014-12-11 16:44:23

标签: 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){
          // do some more stuff
      }
   }
}

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

4 个答案:

答案 0 :(得分:3)

从TypeScript 1.4开始,您还可以使用类型别名:

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

答案 1 :(得分:1)

从 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

答案 2 :(得分:0)

目前无法做到这一点(TypeScript 1.3)。

GitHub上存在一个问题,您可能希望阅读此行为github的建议!

在该问题主题中有两条建议,一条是global::File,另一条是global.File

答案 3 :(得分:0)

有解决方法。您可以使用声明的(无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
      }
   }
}