[英]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.