尽管TypeScript可以推断某些值的类型,但是所有TypeScript const
变量需要一个类型定义:
const x: string = "Hello World!";
删除类型定义时:
const x = "Hello World!";
您收到类似以下内容的错误:
很自然地,我假设在const
循环中定义的for
变量也是如此。
问题是当我尝试时,出现此错误:
错误TS2483:“ for ... of”语句的左侧不能使用类型注释。
for(const [series_name,series_data]:Object.entries(SERIES)的[string,SeriesObject]){ ~~~~~~~~~~~~~~~~~~~
有人可以解释为什么不允许这样做吗?
注意::这个问题仅关于const
变量,不是 let
变量。
答案 0 :(得分:2)
我假设您正在使用TSLint整理代码。
Typescript不需要您将类型放在const变量上,但是TSLint的 typedef 规则却需要。您将能够在不使用类型的情况下编译代码,并且变量的类型将为Hello World
,如使用const
声明的那样。 Il将可分配给string
。
但是,TypeScript不支持将类型放入for循环中。无论如何,这将是无用的,因为我们已经知道要循环通过的数组的类型。
如果不想被迫在变量上输入类型,只需禁用 typedef TSLint规则的“ variable-declaration”选项。