我觉得这必须解决,但是对于我一生来说,我找不到获胜的SO职位。预先感谢您的指示!
我有一个TypeScript模块(我们将其称为my-library
),该模块可用作其他库。我希望其他模块能够执行以下操作:
import { client, Payload } from 'my-library'
const payload: Payload = { x: 'y' }
client.send(payload)
在my-library
模块中,我得到了一个包含以下内容的顶级文件:
export { Payload } from './types/'
export { client } from './client'
我正在使用rollup.js输出可以以各种方式使用的代码。这是package.json配置,指向输出文件:
"browser": "dist/index.js",
"main": "lib/index.js",
"module": "lib/index.es6.js",
"types": "lib/types/index.d.ts",
但是,当我尝试导入从属存储库时:
import { client, Payload } from 'my-library'
...我收到如下错误:
Module '"../../../../../Users/my-user/dev/dependent-module/node_modules/my-library/lib/types"' has no exported member 'client'. Did you mean 'Client'?ts(2724)
请注意,该路径以/lib/types
结尾,就好像该依赖项仅确认package.json的types
参数一样。
似乎我的家属仅从my-library
导入类型,但忽略了我想导入的实际源。谁能告诉我如何让我的家属导入源代码以及my-library
的类型?
答案 0 :(得分:0)
我找到了一个可行的解决方案,但不是最漂亮的:
import { Payload } from 'my-library'
import { client } from 'my-library/lib/client'
const payload: Payload = { x: 'y' }
client.send(payload)
我已经将client
的导入分为另一行,并根据client
的定义将其显式挖掘到模块目录中。这样可以构建,但是我希望没有必要。
如果有人有一个更好的主意,我会很高兴。