[英]Compiler not throwing “Cannot find module” error
在我的项目中,我有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,
我试过了:
@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";
尝试添加"allowSyntheticDefaultImports": true
到您的tsconfig
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.