无法重新声明块范围变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法重新声明块范围变量相关的知识,希望对你有一定的参考价值。

我知道这个问题已经在这里提出了,很抱歉。但是,我需要进一步澄清。

我的问题是,如果我在脚本第一行的Ecmascript 6中键入let hello='2';,那么它将正常工作。但是,在打字稿中,它将引发错误。如果let是块作用域的,那么为什么它不能在Ecmascript6上运行,为什么不能在打字稿中使用。

答案

简单地说:ECMA脚本不是Typescript,尽管Typescript直接使用ECMA-Script的某些功能并最终被转换为ECMA。

在普通的ECMA-Script中,用letconst声明全局变量在语法上是正确的,因为ECMA-Script不提供任何类型安全性概念,也不使用面向对象的设计。

Typescript,作为ECMA-Script的超集,为应用程序开发提供了完全不同的方法。它更类似于Java或C#编程。有时您可以结合使用两种脚本的某些样式,但并非总是如此。

在Typescript中,仅使用publicprotectedprivate来修改全局变量的外部可见性。仅在方法内部允许使用修饰符letconst。因此,在使用Typescript编程时,不能使用letconst声明全局变量。

以上是关于无法重新声明块范围变量的主要内容,如果未能解决你的问题,请参考以下文章

如何解决 Testcafe 和 Jest 之间的类型冲突? (“无法重新声明块范围变量'test'”)

彻底解决 TypeScript 报错:“无法重新声明块范围变量”的问题

无法重新声明块范围变量

在角度 CLI 中出现构建错误:无法重新声明块范围变量“ngDevMode”

使用 Typescript 2.8 React Native - 无法重新声明块范围变量“控制台”

在for循环声明中初始化变量的范围实际上不仅仅是块范围吗?