误报打字稿找不到模块警告

时间:2018-08-07 10:50:50

标签: javascript typescript webpack tslint svg-react-loader

我正在使用以下代码导入图标:

import Icon from "!svg-react-loader?name=Icon!../images/svg/item-thumbnail.svg"

在Visual Studio Code 1.25.1中,我从tslint收到以下警告:

  

[ts]找不到模块   '!svg-react-loader?name =图标!../ images / svg / item-thumbnail.svg'。

即使我应用tslint ignore语句,我仍然会收到此警告:

// tslint:disable-next-line:no-implicit-dependencies

尽管我真的想摆脱此警告,但导入工作正常(即WebPack生成无错误的包)。有任何想法怎么做吗?

2 个答案:

答案 0 :(得分:0)

要解决此问题,请在存储库types/images.d.ts的根目录中创建文件,其内容如下:

declare module '*.svg' {
  import React from 'react';

  interface SVGProps {
    className?: string,
    width?: number,
    height?: number,
  }

  class SVG extends React.Component<SVGProps> {}

  export default SVG;
}

答案 1 :(得分:0)

要获得tslint,请执行此操作

import MyIcon from '!svg-react-loader?name=Icon!./down-arrow.svg'

将其用于您的tslint.conf

{
  "rules": {
    "no-implicit-dependencies": [
      true,
      ["!svg-react-loader?name=Icon!."]
    ]
  }
}

这有点混乱,但是它可以工作..本质上,您需要将整个加载程序字符串列入白名单。