交叉類型(&):可以理解為合并屬性,而屬性的類型取交集,一般取小類型
聯(lián)合類型(|):可以理解為或,或者是A的屬性,或者是B的屬性,或者是咱兩合一起的屬性,屬性的類型一般取大類型
聯(lián)合類型(|):可以理解為或,或者是A的屬性,或者是B的屬性,或者是咱兩合一起的屬性,屬性的類型一般取大類型
2024-02-26
關(guān)于映射類型和索引類型的定義有些問題,具體可參考官方文檔:
1、索引類型:https://www.typescriptlang.org/docs/handbook/2/indexed-access-types.html
2、映射類型:https://www.typescriptlang.org/docs/handbook/2/mapped-types.html
1、索引類型:https://www.typescriptlang.org/docs/handbook/2/indexed-access-types.html
2、映射類型:https://www.typescriptlang.org/docs/handbook/2/mapped-types.html
2024-02-08
說明TypeScirpt是強類型時舉的例子不恰當:對于動態(tài)類型編程語言,賦值時不聲明類型,同一變量可以隨時被賦值為不同類型,舉的例子表現(xiàn)的仍然是TypeScript為靜態(tài)類型;Python是動態(tài)類型,所以也能這么做,但它卻是強類型,判斷強弱類型的基準是會不會存在隱式類型轉(zhuǎn)換:最典型的例子是JavaScript中string+number時,number會自動轉(zhuǎn)換成string然后做字符串拼接;但是Python中不允許str+float;TypeScript中編譯階段允許string+number,實際類型轉(zhuǎn)換是在JavaScript運行時,應(yīng)當解釋為運算符重載。
講師回答 / 黑石
這是兩種安全策略的問題,分為類型匹配和屬性訪問限制。類型匹配:在你的代碼中,變量 c2 被定義為 Course2 類型,這是 EnglishCourse | MathCourse 的聯(lián)合類型。變量 c2?的結(jié)構(gòu) { name: 'a', desc: 'abc' } 符合 EnglishCourse 接口的定義(因為 EnglishCourse 有 name 和 desc 兩個屬性),所以 TypeScript 認為這是一個有效的賦值。????????接下來,關(guān)于為什么你不能直接訪問 c2.desc:屬性訪...
2024-01-03