gpt4 book ai didi

javascript - 编译器不抛出 "Cannot find module"错误

转载 作者:数据小太阳 更新时间:2023-10-29 04:48:52 33 4
gpt4 key购买 nike

在我的项目中我有 2 个文件:

foo.js

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

boo.tsx

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

foo.js中TypeScript正确的发现图片不存在并抛出“Cannot find module”错误,但是对于boo.tsx没有抛出错误所以该错误仅在应用程序崩溃时出现在运行时。

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

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

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

我试过:

  • 不同的模块和模块分辨率设置
  • 使用 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";

关于javascript - 编译器不抛出 "Cannot find module"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50892425/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com