Как я могу использовать несколько подстановочных знаков в объявлениях модуля Typescript? - PullRequest
1 голос
/ 10 мая 2019

В моем проекте ReactJS я использую пакет svg-transform-loader в WebPack, который обновляет некоторые цвета моих 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
}

Iхотел сделать то же самое для преобразованного SVG, однако синтаксис объявления модуля не поддерживает несколько подстановочных знаков:

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

Однако это происходит при использовании tsc:

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

Есть идеи, как я могу объявить эти модули?

...