类型推论
1.基本的類型推論
let name = "lison"; name = 123; // error 不能將類型“123”分配給類型“string”?
2.當我們定義一個數組或元組這種包含多個元素的值的時候,多個元素可以有不同的類型,這種時候 TypeScript 會將多個類型合并起來,組成一個聯合類型
?
let arr = [1, "a"]; arr = ["b", 2, false]; // error 不能將類型“false”分配給類型“string | number”?
此時的 arr 的元素被推斷為string | number,也就是元素可以是 string 類型也可以是 number 類型,除此兩種類型外的類型是不可以的
?
3.?上下文類型
window.onmousedown = function(mouseEvent) {console.log(mouseEvent.a); // error 類型“MouseEvent”上不存在屬性“a” };我們可以看到,表達式左側是 window.onmousedown(鼠標按下時發生事件),因此 TypeScript 會推斷賦值表達式右側函數的參數是事件對象,因為左側是 mousedown 事件,所以 TypeScript 推斷 mouseEvent 的類型是 MouseEvent。在回調函數中使用 mouseEvent 的時候,你可以訪問鼠標事件對象的所有屬性和方法,當訪問不存在屬性的時候,就會報錯。
?
轉載于:https://www.cnblogs.com/guangzhou11/p/11314422.html
總結