原创 ts筆記-索引簽名

索引簽名用於約束知道key、value類型的數據的結構,索引簽名必須是 string 或者 number或者symbols。格式{ [key: keyType]: valueType },string、symbols用於約束對象,numbe

原创 ts筆記 - 流動類型

當改變一個類型時,其他相關的類型自動更新,ts這麼設計是爲了更好的與js的動態性相互結合。 捕獲變量的類型 通過 typeof 操作符可以捕獲到變量的類型(不適用於常量) let foo = 123; let bar: typeof foo

原创 ts筆記-辨析聯合類型

如果一個類型是多個類型的聯合類型,且多個類型含有一個公共屬性,那麼就可以利用這個公共屬性,來創建不同的類型保護區塊。這個公共屬性稱爲辨識屬性,這種類型稱爲辨析聯合類型。 // 示例 interface Square { kind: 's

原创 ts筆記-類型兼容性

類型兼容性用於確定一個類型是否能賦值給其他類型。 any 任何類型都能被賦值給any let foo: any = 123; foo = 'hello'; 結構化 TypeScript 對象是一種結構類型,因此只要結構匹配就是兼容的 in

原创 ts筆記-never和void

申明爲 void 類型的變量,只能賦予 undefined 和 null。因此一個函數如果返回值是void類型,返回值只能是null或undefined let unusable: void = undefined; // OK fun

原创 ts筆記-泛型

泛型用於在成員之間提供有意義的約束,這些成員可以是類的實例成員、類的方法、函數參數、函數返回值。 類 class Queue<T> { private data: T[] = []; push(item: T) { this

原创 ts筆記-類型斷言

TypeScript 允許你覆蓋它的推斷,並且能以你任何你想要的方式分析它,這種機制被稱爲「類型斷言」。類型斷言使用as關鍵字或者<type>表示。 const foo = {}; foo.bar = 123; // Error: 'bar

原创 ts筆記 - 函數

參數註解和返回值註解 interface Foo { foo: string; } function getFoo(str: Foo): Foo { return str } getFoo(111) 如果沒有添加返回值註解,

原创 ts筆記 - lib.d.ts文件說明

lib.d.ts包含 JavaScript 運行時以及 DOM 中存在各種常見的環境聲明,方便我們在寫代碼時默認獲得類型提示 let a = 11 a.toString() // 擁有類型提示 const height = w

原创 ts類型-枚舉

枚舉是組織收集有關聯變量的一種方式,通過組織特殊類型的變量,使得代碼更易讀。 數字類型 enum Weekday { Monday, Tuesday, Wednesday, Thursday, Friday, Sat

原创 ts筆記-類型聲明

全局類型聲明 對於使用js編寫的第三方庫,通常可以在DefinitelyTyped中找到types包,比如jQuery。 npm install @types/jquery --save-dev 使用 // 即使沒有手動引入,全局也都擁有

原创 ts筆記-類型系統

在ts中,類型系統被設計爲可選的,因此可以認爲js就是沒有類型聲明的ts。 類型註解使用 :TypeAnnotation 語法 原始類型 let num: number; let str: string; let bool: boolean

原创 ts筆記-聲明空間

ts中存在兩種聲明空間:類型聲明空間和變量聲明空間 類型聲明 類型聲明空間用來做類型註釋 interface Bar {} type Bas = {}; let bar: Bar; let bas: Bas; // 但是不能當作變量使用

原创 ts筆記-模塊

全局模塊 在全局命名空間中定義的模塊就是全局模塊,示例: // foo.ts const foo = 123; // bar.ts const bar = foo; 以上這種方式編譯是通過的,因爲foo在全局命名空間中,所以其他任何文件

原创 typescript 學習目錄

留個位置,待更新