簡體   English   中英

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

[英]How do you refer to lib.d.ts types

有沒有辦法在 Typescript 中引用 lib.d.ts 類型? 我正在創建一個名為 File 的類,它使用 lib.d.ts 文件類型。

文件.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 )。

從 TypeScript 1.4 開始,您還可以使用類型別名:

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

有解決方法。 您可以使用聲明的(沒有 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 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/annoucing-typescript-3-4/#type-checking-for-globalthis

目前這是不可能的(TypeScript 1.3)。

GitHub 上有一個問題,您可能需要閱讀關於此行為github的建議!

在那個問題線程中有兩個建議,一個是global::File ,另一個是global.File

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM