诸如 declare module '*.css' 的声明是什么作用呢

经常在开源项目中看到根目录下有一个global.d.ts, 里面有如下声明

declare module '*.css';
declare module '*.less';
declare module '*.scss';
declare module '*.sass';
declare module '*.svg';
declare module '*.png';

这是起到什么作用呢

阅读 8.2k
1 个回答

前置知识首先你得明白 declare module 的用法。然后下面讲为啥要 declare 这几个 module


TS 默认只认 ES 模块。

但如果你用了 Webpack 之类的构建工具,是支持以模块形式导入非 ES 模块的,比如导入了一个 CSS:

import 'normalize.css';

这样 TS 不识别,会报错,所以要先把它们声明出来。

P.S. 目前的三大框架如果你是用脚手架搭建的,已经不再需要你手动去写这几行代码了,框架本身帮你写好了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题