TypeScript没有’;t从节点模块识别.d.ts

TypeScript没有’;t从节点模块识别.d.ts,typescript,Typescript,我正在使用和打字脚本 此包已在中定义了类型(使用npm安装时,它位于库中)。这些覆盖了另一个包的类型 从'react intl'导入{FormattedMessage} 声明模块“react intl”{ 接口可提取消息{ [键:字符串]:字符串 } 导出函数定义消息( 信息:T ):{[K in keyof T]:FormattedMessage.MessageDescriptor} } 他们在报告中明确了这一点 这一切似乎都很好。然而,当我使用这个包时,TypeScript抱怨define

我正在使用和打字脚本

此包已在中定义了类型(使用npm安装时,它位于库中)。这些覆盖了另一个包的类型

从'react intl'导入{FormattedMessage}
声明模块“react intl”{
接口可提取消息{
[键:字符串]:字符串
}
导出函数定义消息(
信息:T
):{[K in keyof T]:FormattedMessage.MessageDescriptor}
}
他们在报告中明确了这一点

这一切似乎都很好。然而,当我使用这个包时,TypeScript抱怨
defineMessages
的函数签名

如果我把这些输入复制到我自己的index.d.ts中,它就会像预期的那样工作

为了完整起见,这是我的tsconfig.json:


为什么TypeScript不使用这些类型?

这很可能是因为TypeScript没有上下文说明要使用哪个版本的
defineMessages

TypeScript支持在导入模块时也会应用它

babel插件react intl auto
react intl
一起导入应该合并这些定义,使TypeScript能够理解这两种语法

{
  // ...
  "types": "lib/types.d.ts",
  // ...
}
{
  "compilerOptions": {
    "noEmit": true,
    "noImplicitAny": true,
    "esModuleInterop": true,
    "jsx": "react",
    "lib": ["es5", "es6", "dom"]
  }
}