TypeScript没有使用&&amp ;;检测联合类型。操作者

时间:2015-06-17 23:15:36

标签: typescript

在下面的例子中,x实际上是' boolean |的联合类型字符串'但TypeScript认为它是一个字符串。这是一个错误还是我错过了什么?

var x:string = false && "foo";

1 个答案:

答案 0 :(得分:4)

  

这是一个错误还是我错过了什么

这是设计的。根据规范,来自&&的推断类型是 last 表达式的类型。因此以下推断的类型为string

var x = false && "foo";

这支持常见的JavaScript模式:

var something = foo && foo.bar && foo.bar.bas; 

如果something类型为foo.bar.bas,那么这将是很好的,这正是打字稿的推断。