typescript - Eslint 和 Typescript 抱怨在两个不同文件中声明的变量
问题描述
我在使用 Typescript 和 ESLint 时遇到了一个非常基本的配置问题。我在两个不同的 .ts 文件中有一个名称相同的变量,Typescript 抱怨它们被定义了两次:
Cannot redeclare block-scoped variable 'myVariable'.ts(2451)
myfile.spec.ts(5, 15): 'myVariable' was also declared here.
我应该配置什么以避免在 VSCode 中出现此类错误?
该变量是顶级变量,它不在函数内部。
解决方案
你至少有三个选择:
使用模块,以便顶级声明不是全局的,而是将它们限定为模块。(这意味着将有两个,每个独立于另一个,每个模块一个。)
如果您真的希望它是一个共享的全局变量,请不要两次声明该变量。在一个文件中声明它并在另一个文件中使用它。
将两个声明都更改为 use
var
而不是let
/const
(错误消息的“块范围”部分告诉我们您正在使用let
orconst
)。您可以重新声明var
全局变量。
我强烈推荐#1。尽可能避免使用全局变量,在现代环境中几乎总是可能的。
推荐阅读
- java - Xodus VFS 无法持久化字节
- c++ - 我如何在 Windows 上根据 C++ 中的修改时间读取目录中的文件
- ios - 从当天更改日历开始日期?
- django - Django QuerySet 过滤器通过 id 和其他列获取查询集
- javascript - Angular Elements WebComponents 外部 DOM 更改
- c - 在PDF中,俄语文本需要哪种编码模式和字体?
- ruby-on-rails - ruby on rails 尝试先按完全匹配然后部分匹配进行排序
- r - 如何在ggplot / R中将图例位置从水平(1x4)重新排列为2x2?
- scala - ZIO,从效果提供环境
- ruby-on-rails - 打印服务器内的文件