来自typescriptlang.org:
TypeScript是JavaScript的类型超集,可编译为纯JavaScript。
这是假的。
在这里,我有错误:
An index expression argument must be of type 'string', 'number', 'symbol', or 'any'
这是由[inline-map]表达式引起的:
test = { true: 'Y', false: 'N', undefined: 'IDK', null: 'Nah', 0: 'none' }[ true ];
不是Boolean
类型&#34; <any>
&#34; ???非常令人气愤,因为我使用这种语法左右&amp;中心。
此外,以下工作正常:
{ true: 'Y', false: 'N', undefined: 'IDK', null: 'Nah', 0: 'none' }[ undefined ];
{ true: 'Y', false: 'N', undefined: 'IDK', null: 'Nah', 0: 'none' }[ null ];
口语,&#34;任何合法的JavaScript都是完全合法的TypeScript&#34;完全是一种错误的陈述。
显然,我可以把它写成:
{ true: 'Y', false: 'N', undefined: 'IDK', null: 'Nah', 0: 'none' }[ ''+true ];
但为什么Boolean
不属于any
类型
这是TypeScript的错误吗?
这是否已在TS 2.1中进行了协调?
我可以用tsconfig.json
或其他方式更正此问题吗?