Base Core ⇒

  1. Interfaces (介面)
  2. Generics (泛型)
  3. Classes (類別)
  4. Enums (列舉型別)

Documents ⇒

什麼是 TypeScript

TypeScript 中文手册

Enum Type

TypeScript | 善用 Enum 提高程式的可讀性 - 基本用法 feat. JavaScript

Interfaces

物件的型別--介面

Advanced Type

void // define a function has no return
never // never這個型別跟void很像,但定義上更嚴謹,有些function根本不會結束,例如拋出例外,或是無窮迴圈
null
undefined

TypeScript 筆記:void 與 any

TypeScript(4) 進階型別 never、void、null與undefined

變數型別定義語句 ⇒

// 基礎型別 Number, String, Boolean, null, undefined, Symbol (ES6)
// 使用 : 來定義該變數資料型別
const foo: number = 0;
const bar: string = '456';

const fn1 = (type: string) => {
	// do something...
};

// 使用 any 可以不綁定資料型別定義,但以此來編寫則失去了 Typescript 的意義
const temp: any = 'whatever you want';
// 倘若不指定型別,編譯時會報錯,但根據 ts 型別推論事實上等價於 js 一般宣告方式
let noType;
// Equal =>
let noType: any;

聯合型別使用 (Union Types)

// ex: 
let foo: string | number;
// 當對該變數索引進行資料操作時,必須是能支援兩者的 function
// 同時 function (): number 的定義代表的是 fn 預期 return 出來的資料型別為 number
// ex:
const fn1 = (type: string | number):number {
	console.log(type.length) // error, number 屬性不能直接調用 length 
	console.log(type.toString()) // success 
}