Module 如何引用lib.d.ts类型
有没有办法在Typescript中引用lib.d.ts类型?我正在创建一个名为File的类,它使用lib.d.ts文件类型 File.tsModule 如何引用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){ /
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可用,而不必使用类型别名,那就更好了。