1、基础
Typescript里,在没有明确指出类型的地方,类型推断会提供类型。
let x = 3;//x被推断为数字这种推断发生在初始化变量和成员,设置默认参数值和决定函数返回值时
2、最佳通用类型
let x = [0,1,null];考虑所有元素成员,给出一个兼容所有候选类型的类型
let zoo = [new Rhino(), new Elephant(), new Snake()];如果没有找到最佳通用类型的话,类型推断为联合数组类型
(Rhino | Elephant | Snake)[]。
3、上下文类型
按上下文归类:Typescript类型推论也可以按照相反的方向进行。
// 参数不设置默认类型
function (obj){
console.log(obj.name);// Error
}
// 参数设置类型any不报错
//这个函数表达式有明确的参数类型注解,上下文类型被忽略
function (obj:any){
console.log(obj.name);// No Error
}