当路径显式时,声明Typescript模块



我有一个项目,我需要明确地针对包的浏览器兼容版本,以便webpack能够正确地捆绑它。

import { optimize, extendDefaultPlugins } from 'svgo/dist/svgo.browser'

通常导入为:

import { optimize, extendDefaultPlugins } from 'svgo'

这很好,因为@types/svgo中有可用的类型。

当我从'svgo/dist/svgo.browser'导入时,我会得到错误Could not find a declaration file for module 'svgo/dist/svgo.browser'。如何通过将@types/svgo处的可用类型包重新路由到更明确的导入语句来修复此错误?

从TypeScript方面我不知道,但由于您使用的是Webpack,所以您可以作弊并将'svgo'别名为'svgo/dist/svgo.browser':

resolve: {
alias: {
svgo: require.resolve('svgo/dist/svgo.browser')
}
}

由于TypeScript不知道Webpack别名,它只是将您视为正在导入";正常的";模块和@types/svgo增强功能在默认情况下会被选中,但Webpack为您的捆绑包提供了正确的代码。

最新更新