为什么可以声明一个' anyTextString'的变量。输入TypeScript?

时间:2016-12-15 08:13:19

标签: typescript types tsc

为什么tsc不会抱怨这行代码:

let a: 'my text string';

并允许a的类型为'my text string'

并且......如果,让我们说有人利用隐式类型推断,并且只是放置':'而不是'='?!

1 个答案:

答案 0 :(得分:1)

这是一个文字类型。文档is here。一个例子:

type Color = 'blue' | 'red'

function showColor(c: Color) {
  console.log(c)
}

showColor('blue') // OK
showColor('other') // Error

注意:自TypeScript 2.0以来,文字类型为expanded to numbers and booleans(不仅仅是字符串)。然后,使用TypeScript 2.1,文字类型are better inferred

  

而且......如果让某人利用隐式类型推断,只是放一个':'而不是'=',那么这不容易出错吗?!

在TypeScript中,需要发现:。以下代码:

let a: 'my text string';

...编译为(此处为目标ES6):

let a;