javascript – 编译器没有抛出“找不到模块”错误

前端之家收集整理的这篇文章主要介绍了javascript – 编译器没有抛出“找不到模块”错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的项目中,我有2个文件

foo.js

const image = require(‘../ this / path / is / wrong.png’);

boo.tsx

const image = require(‘../ this / path / is / wrong.png’);

在foo.js中,TypeScript正确地发现图像不存在并抛出“找不到模块”错误,但是没有为boo.tsx抛出错误,因此当应用程序崩溃时,错误只会出现在运行时.

如果我只是将boo.tsx重命名为boo.js TS再次开始按预期抛出错误.

这些是我认为可能相关的一些编译器选项:

"module":"es2015","target": "es2015","jsx": "react","moduleResolution":"Node","allowJs": true,

我试过了:

>不同的模块和moduleResolution设置
>使用import而不是require
>有和没有@ types / node

是否有任何特殊的tsconfig设置我缺少或我做错了什么?

解决方法

require函数在.ts或.tsx文件中没有特殊含义,因为TypeScript仅使用识别语法进行导入.

在带有allowJs的.js文件中,它使用启发式方法,并将require调用识别为导入.

类似于TypeScript的东西更像是

import image = require('../this/path/is/wrong.png');

或其中一个ES模块语法,如

import * as foo from "foo";

import foo from "foo";
原文链接:https://www.f2er.com/js/157045.html

猜你在找的JavaScript相关文章