gpt4 book ai didi

node.js - TypeScript 编译器不会因缺少声明而引发错误

转载 作者:太空宇宙 更新时间:2023-11-04 00:44:41 24 4
gpt4 key购买 nike

我在我的 NodeJS 项目中发现了这个奇怪的情况。我将尝试在这里描述我的问题,相信 tsconfig.json 中有一个简单的选项正好适合这种情况。我使用 TypeScript v1.7.3。

文件test1.ts包含变量声明:

// test1.ts
let a = 1;

文件test2.ts包含不​​正确的变量使用:

// test2.ts
console.log(a);

tsconfig.json 如下所示:

// tsconfig.json
{
"compilerOptions": {
"module": "commonjs",
"target": "es5"
}
}

编译器不会向我抛出错误,表明我正在使用未声明的变量a。但是如果我尝试导出一些其他变量,例如 b 我们将得到预期的错误:

// test1.ts
let a = 1;
export let b = 2;

编译器:

Error:(1, 13) TS2304: Cannot find name 'a'.

如何让编译器在第一种情况下发出错误?我刚刚在我的项目中发现我突然删除了一个变量,并且它在运行时失败,而不是编译时

最佳答案

这是一个不幸的结果,因为没有某种导出或导入的文件被编译器视为“脚本”文件。编译器假设脚本文件仅在全局范围内运行,并且将被拼接在一起。如果不指定--outFile,则无法明确表示变量在使用后是否会发生声明。

一种解决方法是添加一个

export {};

对您的文件的声明。

关于node.js - TypeScript 编译器不会因缺少声明而引发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35233920/

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