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