无法重新声明块范围变量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法重新声明块范围变量相关的知识,希望对你有一定的参考价值。
我知道这个问题已经在这里提出了,很抱歉。但是,我需要进一步澄清。
我的问题是,如果我在脚本第一行的Ecmascript 6中键入let hello='2';
,那么它将正常工作。但是,在打字稿中,它将引发错误。如果let是块作用域的,那么为什么它不能在Ecmascript6上运行,为什么不能在打字稿中使用。
简单地说:ECMA脚本不是Typescript,尽管Typescript直接使用ECMA-Script的某些功能并最终被转换为ECMA。
在普通的ECMA-Script中,用let
或const
声明全局变量在语法上是正确的,因为ECMA-Script不提供任何类型安全性概念,也不使用面向对象的设计。
Typescript,作为ECMA-Script的超集,为应用程序开发提供了完全不同的方法。它更类似于Java或C#编程。有时您可以结合使用两种脚本的某些样式,但并非总是如此。
在Typescript中,仅使用public
,protected
或private
来修改全局变量的外部可见性。仅在方法内部允许使用修饰符let
和const
。因此,在使用Typescript编程时,不能使用let
或const
声明全局变量。
以上是关于无法重新声明块范围变量的主要内容,如果未能解决你的问题,请参考以下文章
如何解决 Testcafe 和 Jest 之间的类型冲突? (“无法重新声明块范围变量'test'”)
彻底解决 TypeScript 报错:“无法重新声明块范围变量”的问题
在角度 CLI 中出现构建错误:无法重新声明块范围变量“ngDevMode”