可能是因为文件中使用了顶层的import和export,这会使此文件被当作一个es module,而不是全局声明文件,故内部的declare将不会被其他文件识别,而是只能像普通ts文件一样,通过显式import导入它export的变量
例如
bar.d.ts如果声明为以下形式
import Foo from 'foo'
declare module 'bar' {
const bar: {foo: Foo}
export default bar
}
则其他文件无法识别到全局模块'bar',正确写法为:
declare module 'bar' {
import Foo from 'foo' // 将顶层的import移到module声明块内部
const bar: {foo: Foo}
export default bar
}
网友评论