如果没有明确的指定类型,那么 TypeScript 会依照类型推论(Type Inference)的规则推断出一个类型。
什么是类型推论?
举一个小例子:
let name = 'zxc'
name = 24 //error TS2588: Cannot assign to 'name' because it is a constant.
我们可以发现,报错了。
我们需要知道的是,TypeScript 会在没有明确的指定类型的时候推测出一个类型,这就是类型推论。
当然了,有一种特殊的情况:
那就是如果定义的时候没有赋值,不管之后有没有赋值,都会被推断成
any
类型而完全不被类型检查:
let age;
age = 24;
age = "zxc";
联合类型
当 TypeScript 不确定一个联合类型的变量到底是什么类型的时候,我们只能访问此联合类型中所有类型里共有的属性或方法
function getLength(something: string | number): number {
return something.length;
//类型“string | number”上不存在属性“length”。类型“number”上不存在属性“length”。
}