語法:java
let name:<type>=<value>;
let list: number[] = [1, 2, 3];
let list:Array<string|number>=['1',2,3,'4'];
數組合並了相同類型的對象(也能夠不一樣類型),而元組(Tuple)合併了不一樣類型的對象。
當直接對元組類型的變量進行初始化或者賦值的時候,須要提供全部元組類型中指定的項。數組
let data: [string, number] = ['a', 1];
當添加越界的元素時,它的類型會被限制爲元組中每一個類型的聯合類型函數
枚舉(Enum)類型用於取值被限定在必定範圍內的場景,好比一週只能有七天,顏色限定爲紅綠藍等。
enum Days {Sun, Mon, Tue, Wed, Thu, Fri, Sat};
枚舉成員會被賦值爲從 0 開始遞增的數字,同時也會對枚舉值到枚舉名進行反向映射:ui
let d: Date = new Date();
let body: HTMLElement = document.body;
字面量類型用來約束取值只能是某幾個值中的一個。code
type EventNames = 'click' | 'scroll' | 'mousemove'; type num = 1 | 2 | 3;
類型別名與字符串字面量類型都是使用 type 進行定義。對象
聯合類型使用 | 分隔每一個類型。
語法:繼承
let name:<type1>|<type1>=<value>;
能夠用來手動指定一個值的類型。接口
<類型>值 或 值 as 類型
在 tsx 語法(React 的 jsx 語法的 ts 版)中必須用後一種。ip
在 TypeScript 的類型定義中,=> 用來表示函數的定義,左邊是輸入類型,須要用括號括起來,右邊是輸出類型。jsx
與接口中的可選屬性相似,咱們用 ? 表示可選的參數(可選參數必須接在必需參數後面)
function buildName(firstName: string, lastName?: string) { if (lastName) { return firstName + ' ' + lastName; } else { return firstName; } }
重載容許一個函數接受不一樣數量或類型的參數時
可選屬性的含義是該屬性能夠不存在。
語法:
interface Person { name?: string; }
能夠定義方法
TypeScript 能夠使用三種訪問修飾符:public private 和 protected
abstract 用於定義抽象類和其中的抽象方法。