export = typeof import()是什么意思?

时间:2019-08-20 20:43:04

标签: typescript typescript-declarations

考虑以下代码(见here):

declare module "foobar" {
  export = typeof import("foobar")
}

第二行到底是做什么的?
它不是递归地引用同一模块吗?
另外,为什么 annotation 类型被接受为导出值?

2 个答案:

答案 0 :(得分:1)

TS中的typeof运算符可解析给定变量的类型。导入返回变量。因此,这是在导出import('foo')类型而不是导出import('foo') value

答案 1 :(得分:-1)

只是这样,您可以在调用库的静态方法和属性时获得打字稿的帮助。如果需要,可以将其替换为any,但是会丢失类型:(

由于动态导入,此语法是必需的。如果您只是正常地导入了库(与const myDynamicallyImportedLibrary = import(“ ...”)相对),那么您将不需要进行typeof import(“ foobar”),因为打字稿会自动在后台查找类型。

考虑:

导出类型Firebase = typeof import(“ firebase / app”);