我有一个包含大量生成模块的包,这些模块都导出相同的类型(例如图标库)。
我想避免.d.ts
为每个模块创建一个文件,因为它们都是相同的。
相反,我想index.d.ts
在包的根目录创建一个文件,如下所示:
// pkg-with-many-assets/index.d.ts
declare module 'pkg-with-many-assets/*' {
const svgPath: string;
export default svgPath;
}
我发现这没有在消费应用程序中注册。但是,当我将文件放在消费应用程序中时,这会起作用。
是否可以创建带有环境模块声明的包?
编辑:似乎这实际上是可能的,因为@types/simple-icons做到了。但是,如果我要将文件复制并粘贴@types/simple-icons/index.d.ts
到simple-icons/index.d.ts
我的node_modules
目录中,它就不再起作用了。
也许问题在于 TypeScript 没有读取包index.d.ts
根目录下的文件simple-icons
(尽管 中有"types": "index.d.ts"
规范package.json
)。
我设法通过在 中指定包名称来使上述工作正常工作tsconfig.json
compilerOptions.types
,但显然我希望这种检测是自动的,无需手动配置。