考虑以下代码(见here):
declare module "foobar" {
export = typeof import("foobar")
}
第二行到底是做什么的?
它不是递归地引用同一模块吗?
另外,为什么 annotation 类型被接受为导出值?
答案 0 :(得分:1)
TS中的typeof
运算符可解析给定变量的类型。导入返回变量。因此,这是在导出import('foo')
的类型而不是导出import('foo')
的 value 。
答案 1 :(得分:-1)
只是这样,您可以在调用库的静态方法和属性时获得打字稿的帮助。如果需要,可以将其替换为any
,但是会丢失类型:(
由于动态导入,此语法是必需的。如果您只是正常地导入了库(与const myDynamicallyImportedLibrary = import(“ ...”)相对),那么您将不需要进行typeof import(“ foobar”),因为打字稿会自动在后台查找类型。
考虑:
导出类型Firebase = typeof import(“ firebase / app”);