顶层import/export造成typescript项目中声明

2021-03-25  本文已影响0人  rainmanhhh

可能是因为文件中使用了顶层的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
}
上一篇下一篇

猜你喜欢

热点阅读