《揭祕Angular 2》-基本型別
最近在學習《揭祕Angular 2》想向大家分享一下,就從Angular 2入門 TypeScript開始講起:
TypeScript是一種由微軟開發的自由和開源的程式語言。它是JavaScript的一個超集,而且本質上向這個語言新增了可選的靜態型別和基於類的物件導向程式設計。安德斯·海爾斯伯格,C#的首席架構師,已工作於TypeScript的開發。
ES6中引入了,let變數宣告和const常量宣告,箭頭函式等特性,極大的增強了JavaScript語言開發的能力。
typescript安裝
通過npm安裝typescript:
1.npm install -g typescript
2.tsc -v 檢查typescript版本(tsc是typescript的編譯命令)
let num2 : number = 0o744;//八進位制
let num3 : number = 6;//十進位制
let name1 : string = "I";
//定義陣列方式
//在元素後面接上[]
let arr : number[] = [1,2];
//使用陣列泛型
x = ['I',18];
//x = ['18','typescript'];//報錯
enum Color {red , green , blue}
//列舉預設下標為0,但可以手動修改
//enum Color {red = 4 , green , blue = 7}
let c : Color = Color.blue;
a = "hello";
a = false;
x.ifItExists(); // 正確,ifItExists方法在執行時可能存在,但這裡並不會檢查
x.toFixed(); // 正確
alert("hello typescript")
}
TypeScript never 型別
let y: number;
// 執行錯誤,數字型別不能轉為 never 型別
x = 211;
// 執行正確,never 型別可以賦值給 never型別
x = (()=>{ throw new Error('exception')})();
// 執行正確,never 型別可以賦值給 數字型別
y = (()=>{ throw new Error('exception')})();
// 返回值為 never 的函式可以是丟擲異常的情況
function error(message: string): never {
throw new Error(message);
}
// 返回值為 never 的函式可以是無法被執行到的終止點的情況
function loop(): never {
TypeScript是一種由微軟開發的自由和開源的程式語言。它是JavaScript的一個超集,而且本質上向這個語言新增了可選的靜態型別和基於類的物件導向程式設計。安德斯·海爾斯伯格,C#的首席架構師,已工作於TypeScript的開發。
ES6中引入了,let變數宣告和const常量宣告,箭頭函式等特性,極大的增強了JavaScript語言開發的能力。
typescript安裝
通過npm安裝typescript:
1.npm install -g typescript
2.tsc -v 檢查typescript版本(tsc是typescript的編譯命令)
TypeScript 基本型別
在TypeScript中,提供了一下基本資料型別
- 布林型別(boolean)
- 數字型別(number)
- 字串型別(string)
- 陣列型別(array)
- 元組型別(tuple)
- 列舉型別(enum)
- 任意值型別(any)
- null 和 undefined
- void 型別
- never 型別
注:在TypeScript中宣告變數,需要加上型別宣告
- 布林型別是最簡單的資料型別,只有true和false兩種值。如果我們給flag設定初始值為布林值,再給flag賦別的值是,就會報錯
flag = 1; // 報錯
- typescript的數字型別均為浮點型,但同時支援二進位制,八進位制,十進位制和十六進位制。
let num2 : number = 0o744;//八進位制
let num3 : number = 6;//十進位制
let num4 : number = 0xf00d;//十六進位制
- typescript支援使用單引號或者雙引號來表示字串型別。
let name1 : string = "I";
let years : number = 18;
- typescript陣列操作類似於JavaScript中陣列的操作,但建議開發者最好只為陣列元素賦一種型別值。
//定義陣列方式
//在元素後面接上[]
let arr : number[] = [1,2];
//使用陣列泛型
let arr2 : Array<number> = [1,2];
- 元組型別用來表示已知元素數量和型別的陣列,各元素的型別不必相同。
x = ['I',18];
//x = ['18','typescript'];//報錯
console.log(x[0])
TypeScript列舉型別- 列舉型別是一個可被命名的整數型常量的集合,列舉型別為集合成員賦予有意義的名稱,增強可讀性。
enum Color {red , green , blue}
//列舉預設下標為0,但可以手動修改
//enum Color {red = 4 , green , blue = 7}
let c : Color = Color.blue;
console.log(c);
TypeScript任意值型別- 任意值針對的是型別不明確的變數變數值會動態變化時,任意值型別可以幫助這些變數跳過編譯階段的型別檢查
a = "hello";
a = false;
- 改寫現有程式碼時,任意值允許在編譯時可選擇地包含和移除型別檢查
x.ifItExists(); // 正確,ifItExists方法在執行時可能存在,但這裡並不會檢查
x.toFixed(); // 正確
- 定義各種型別資料陣列時
arrayList[1] = 100;
typescript null 和 undefined- 預設情況下,null 和 undefined 是其它型別的子型別,可以賦值給其它型別,如數字型別,此時,賦值後的型別會變成 null 或 undefined。在typescript中啟用嚴格的空校驗特性,使得null和undefined只能賦值給void或本身對應的的型別。可以用“ | ”支援多型別
- null和undefined也有自己本身的型別,但我們不建議使用
let x: number;
let y: number |undefined;
let z: number|null| undefined;
x = 1; // 執行正確
y=1;// 執行正確
z=1;// 執行正確
x = undefined; // 執行錯誤
y=undefined; // 執行正確
z=undefined;// 執行正確
x = null; // 執行錯誤
y=null; // 執行錯誤
z=null;// 執行正確
x=y; // 執行錯誤
x=z; // 執行錯誤
y=x;// 執行正確
y=z;// 執行錯誤
z=x;// 執行正確
z=y;// 執行正確
上面的例子中變數y允許被賦予數字型別undefined或undefined型別的資料值,而變數z還額外支援null。
TypeScript官方建議在編碼時,都啟用--strictNullchecks特性,這樣有利於編寫更強壯的程式碼。
TypeScript void 型別- 在typescript中,void表示沒有任何型別。如果一個函式沒有返回值,它的返回值就是void。
alert("hello typescript")
}
TypeScript never 型別
- never是其他型別的子型別,代表不會出現的值。這就意味著宣告為never的型別的變數只能被never型別所賦值,在函式中它通常表現為丟擲異常或者無法執行到終止點。
let y: number;
// 執行錯誤,數字型別不能轉為 never 型別
x = 211;
// 執行正確,never 型別可以賦值給 never型別
x = (()=>{ throw new Error('exception')})();
// 執行正確,never 型別可以賦值給 數字型別
y = (()=>{ throw new Error('exception')})();
// 返回值為 never 的函式可以是丟擲異常的情況
function error(message: string): never {
throw new Error(message);
}
// 返回值為 never 的函式可以是無法被執行到的終止點的情況
function loop(): never {
while (true) {}
}
TypeScript基本型別已經總結完,希望對大家有幫助哦~~~see you..
相關文章
- [譯]揭祕基本資料型別資料型別
- C#集合型別大揭祕C#型別
- Angular 4.x HttpModule 揭祕AngularHTTP
- 2-基本資料型別資料型別
- 【揭祕】C語言型別轉換時發生了什麼?C語言型別
- javascript基本型別 引用型別 基本包裝型別JavaScript型別
- 1. 揭祕Spring型別轉換 - 框架設計的基石Spring型別框架
- Angular 4.x ngModel 雙向繫結原理揭祕Angular
- 第2章 變數和基本型別變數型別
- 初學Python(2)基本資料型別Python資料型別
- Typescript:基本型別TypeScript型別
- Go 基本型別Go型別
- 揭祕任務型對話機器人(上篇)機器人
- 揭祕任務型對話機器人(下篇)機器人
- AngularJS、 Angular 2、Angular 4 的區別AngularJS
- js基本型別和引用型別區別JS型別
- JAVA 基本型別與 引用型別區別Java型別
- CSS揭祕筆記(2):背景與邊框CSS筆記
- JavaScript - 基本型別與引用型別值JavaScript型別
- Java的基本型別和引用型別Java型別
- 基本資料型別與字串型別資料型別字串
- (2)Java基本資料型別和包裝類Java資料型別
- 揭祕ThreadLocalthread
- 揭祕instancetype
- JavaFX教程——基本型別Java型別
- 基本資料型別資料型別
- JS篇-基本型別和引用型別、typeofJS型別
- JS基本型別與引用型別知多少JS型別
- 深入理解 RxJava2:揭祕 subscribeOn(3)RxJava
- Python學習筆記2:基本資料型別Python筆記資料型別
- 你不知道的JavaScript--Item4 基本型別和基本包裝型別(引用型別)JavaScript型別
- Java基礎-基本型別和包裝型別Java型別
- 揭祕前端儲存前端
- synchronized底層揭祕synchronized
- Java 8 Lambda 揭祕Java
- JavaScript基本資料型別JavaScript資料型別
- Java 基本資料型別Java資料型別
- 原子更新基本型別類型別