代码之家  ›  专栏  ›  技术社区  ›  Ben Smith

误报Typescript找不到模块警告

  •  1
  • Ben Smith  · 技术社区  · 6 年前

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

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

    在Visual Studio代码1.25.1中,我从tslint得到以下警告:

    [ts]找不到模块 '!svg装载机?名称=图标/图像/svg/项目缩略图。“svg”。

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

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

    导入工作正常(即WebPack构建包时没有错误),不过我真的希望消除这个警告。有什么办法吗?

    2 回复  |  直到 6 年前
        1
  •  0
  •   Ivan Samovar    6 年前

    要解决此问题,请在存储库的根目录中创建文件 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;
    }
    
        2
  •  0
  •   Wouter van Vliet    6 年前

    让tslint允许你这么做

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

    把这个用在你的头发上。形态

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

    虽然有点乱,但还是管用的。。本质上,您需要将整个加载程序字符串列入白名单。