【发布时间】:2019-05-09 15:43:25
【问题描述】:
我正在使用 babel-plugin-react-intl-auto 和 TypeScript。
这个包在lib/types.d.ts 中定义了类型(使用 npm 安装时它在 lib 中)。这些覆盖另一个包的类型。
import { FormattedMessage } from 'react-intl'
declare module 'react-intl' {
interface ExtractableMessage {
[key: string]: string
}
export function defineMessages<T extends ExtractableMessage>(
messages: T
): { [K in keyof T]: FormattedMessage.MessageDescriptor }
}
他们在package.json中指定了这个
{
// ...
"types": "lib/types.d.ts",
// ...
}
这一切似乎都很好。但是,当我使用这个包时,TypeScript 抱怨defineMessages 的函数签名。
如果我将这些类型复制到我自己的 index.d.ts 中,它会按预期工作。
为了完整起见,这是我的 tsconfig.json:
{
"compilerOptions": {
"noEmit": true,
"noImplicitAny": true,
"esModuleInterop": true,
"jsx": "react",
"lib": ["es5", "es6", "dom"]
}
}
为什么 TypeScript 不使用这些类型?
【问题讨论】:
标签: typescript