一、类型推论
类型推论,顾名思义就是指类型在哪里如何被推断。在TS语法中,如果有些没地方有明确指出类型,类型推论就会帮助提供类型,即声明变量时,不赋给类型,就会触发类型推论。
1、最佳通用类型
最佳通用类型就是指,在一个或者多个表达式中,变量的类型会从这些表达式中的所有类型来推断出一个最合适的通用类型。
举个例子:
let brand = 'YSL'
brand = 123
当定义一个变量brand
,变量brand的类型被推断为字符串,但是后来修改值为另外一种类型,如number,boolean等,TS就会很贴心的提示不能将其他类型分配给字符串。然而这只是从单个表达式里面推断,如果是多个表达式呢?又会如何推断呢?例如:
let money = [1, 'yuan', null]
money = [123]
money = ['hello']
money = [null]
money = [{ name: 'ducky' }]//错误提示
可见,当需要从几个表达式中推断类型时候,会使用这些表达式的类型来推断出一个最合适的通用类型—称为最佳通用类型。当有多个表达式时,为了推断money
的类型,必须要考虑所有元素的类型。 这里有三种选择: number
,string
和null
。 计算通用类型算法会考虑所有的候选类型