tslint no-var-keyword的用途是什么 - “forbidden'var'keyword”?

时间:2017-10-12 00:00:49

标签: angular typescript tslint

tslint no-var-keyword(“forbidden'var'keyword”)的目的是什么? tslint似乎在我的代码中为var关键字的每次出现都记录了一个错误。 tslint是否应该在ng2中无条件地排除var关键字?如果是这样,为什么呢?

2 个答案:

答案 0 :(得分:0)

此处https://palantir.github.io/tslint/rules/no-var-keyword/

记录了规则及其原理。
  

使用var声明变量具有一些边缘情况,这使var不适合现代代码。 var声明的变量将其父功能块作为范围,而忽略其他控制流语句。 var具有声明“提升”(类似于函数),并且可以在声明之前使用。

     

由const和let声明的变量将其定义所在的块作为其作用域,并且不允许在声明之前使用或与另一个const或let一起重新声明。

回答第二个问题,这与Angular,ng2或任何其他版本无关。这是一个Typescript问题。是的,他们正试图让您完全放弃var,而赞成letconst

let和var之间的区别是范围。您必须在使用前放置声明,然后可以在嵌套作用域中重新声明。在TS中,您也可以借此机会声明其他类型,尽管我不会将其声明为编程风格。

答案 1 :(得分:-1)

'无功'已被弃用,以支持' let'。

前者创建一个全局变量,通常被认为是不好的做法,而后者创建了一个范围变量。

因此,默认情况下,lint强制使用范围变量。

相关问题