变量名后直接声明类型,赋值或修改不符合类型会报错
let str1: string = "123";
str = 123; // 不能将类型“number”分配给类型“string”
let str2: string = 123; // 不能将类型“number”分配给类型“string”
ts根据赋值自动推断类型,修改值不符合类型会报错
let str = "123"; // str: string
str = 123; // 不能将类型“number”分配给类型“string”
类型注解是在变量声明时定义类型,约束赋值和修改;
类型推断是根据赋值反推定义变量的类型,约束变量值的修改。