// type annotation 类型注解,我们来告诉 TS 变量是什么类型 // type inference 类型推断,TS 会自动的去尝试分析变量的类型 // 如果 TS 能够自动分析变量类型,我们就什么也不需要做了 // 如果 TS 无法分析变量类型的话,我们就需要使用类型注解 let count: number; // 这种显性的声明,count 变量是 number 类型数据的写法,叫做类型注解 count = 123; // 这个没有说明 countInference 是数字,但是鼠标浮上去的时候,也会显示 number 类型,TS 会自动推断变量类型 let countInference = 123; const fristNumber = 1; const secondNumber = 2; const total = fristNumber + secondNumber; /** * 这里不需要类型注解,鼠标浮上去,会显示数字,说明 TS 不仅推断出是数字类型, * 还显示 fristNumber 永远是1,secondNumber 永远是2 * total 也推断出是数字类型,不需要手动写 * 写 TS 无非是让每个变量都有类型 */ function getTotal(fristNumber, secondNumber) { return fristNumber + secondNumber } const totalVal = getTotal(1, 2); /** * 这个时候是需要类型注解的,鼠标浮上去,fristNumber,secondNumber 是任何类型 */ function getTotal(fristNumber: number, secondNumber: number) { return fristNumber + secondNumber } const totalVal = getTotal(1, 2); // 这个时候 fristNumber,secondNumber 确定是 number 类型,totalVal 也就能推断出来