首页 > 解决方案 > 如何在 Typescript 模块声明中使用多个通配符?

问题描述

在我的 ReactJS 项目中,我使用了WebPack 中的svg-transform-loader包,它可以即时更新我的​​ SVG 的一些颜色。

import starOutlineIcon from 'images/star-outline.svg'
import greyStarOutlineIcon from 'images/star-outline.svg?stroke=#888888'

这工作得很好,我已经使用了一段时间。

但是我已经开始使用 TypeScript (v3.4.5) 输入我的代码,我不得不为图像使用自定义类型:

declare module '*.svg' {
    const content: string
    export default content
}

我想对转换后的 SVG 做同样的事情,但是模块声明语法不支持多个通配符:

declare module '*.svg?stroke=*' {
    const content: string
    export default content
}

但是,当我使用时这会中断tsc

error TS5061: Pattern '*.svg*' can have at most one '*' character.

关于如何声明这些模块的任何想法?

标签: reactjstypescriptwebpacktypescript3.0

解决方案


推荐阅读