首頁 > 軟體

Typescript中的資料型別範例總結

2022-03-25 16:00:26

是什麼

typescript和javascript幾乎一樣,擁有相同的資料型別,另外在javascript基礎上提供了更加實用的型別供開發使用。

在開發階段,可以為明確的變數定義為某種型別,這樣typescript就能在編譯階段進行型別檢查,當型別不符合預期結果的時候則會出現錯誤提示

有哪些

typescript的資料型別主要有如下:

  • 1、boolean(布林型別)
  • 2、number(數位型別)
  • 3、string(字串型別)
  • 4、array(陣列型別)
  • 5、tuple(元組型別)
  • 6、enum(列舉型別)
  • 7、any(任意型別)
  • 8、null和undefined型別
  • 9、void型別
  • 10、never型別
  • 11、object(物件型別)

boolean

let flag:boolean = true;
flag = 123;    // 錯誤
flag = false;  // 正確

number

數位型別,和javascript一樣,typescript的數值型別都是浮點數,可支援二進位制、八進位制、十進位制和十六進位制。

let num:number = 123;
num = '456';   // 錯誤
num = 456;     // 正確

進位製表示:

let decLiteral:number = 6; // 十進位制
let hexLiteral:number = 0xfood; // 十六進位制
let binaryLiteral:number = 0b1010; // 二進位制
let octalLiteral:number = 0o744; // 八進位制

string

字串型別,和javascript一樣,可以使用雙引號(")或單引號(')表示字串

let str:string = 'this is ts';
str = 'test';

作為超集,當然也可以使用模板字串進行包裹,通過${}嵌入變數

let name:string = `Gene`;
let sentence:string = `Hello, my name is ${name}`

array

陣列型別,跟javascript一致,通過[]進行包裹,有兩種寫法:

方式一:元素型別後面接上[]

let arr:string[] = ['12','23'];
arr = ['45','56'];

方式二:使用陣列泛型,Array<元素型別>:

let arr:Array<number> = [1,2];
arr = ['45','55'];

tuple

元組型別,允許表示一個已知元素和型別的陣列,各元素的型別不必相同

let tupleArr:[number,string,boolean];
tupleArr = [12,'34',true]; // yes
tupleArr = [12,'34']; // no

enum

enum型別是對javascript標準資料型別的一個補充,使用列舉型別可以為一組數值賦予友好的名字

enum Color {Red,Green,Blue}
let c:Color = Color.Green;

any

可以指定任何型別的值,在程式設計階段還不清楚型別的變數指定一個型別,不希望型別檢查器對這些值進行檢查而是直接讓它們通過編譯階段的檢查,這時候可以使用any型別

使用any型別允許被賦值為任意型別,甚至可以呼叫其屬性、方法

let num:any = 123;
num = 'str';
num = true;

定義儲存各種型別資料的陣列時,範例程式碼如下:

let arrayList:any[] = [1,false,'fine'];
arrayList[1] = 100;

null和undefined

在javascript中null表示 “什麼都沒有”,是一個只有一個值的特殊型別,表示一個空物件參照,而undefined表示一個沒有設定值的變數。

預設情況下null和undefined是所有型別的子型別,就是說你可以把null和undefined賦值給number型別的變數

let num:number | undefined; // 數值型別或者undefined
console.log(num); // 正確
num = 123; 
console.log(num); // 正確

但是ts設定了--strictNullChecks標記,null和undefined只能賦值給void和它們各自

void

用於標識方法返回值的型別,表示該方法沒有返回值。

function hello():void {
    alert('Hello Runoob')
}

never

never是其他型別(包括null和undefined)的子型別,可以賦值給任何型別,代表從不會出現的值,

但是沒有型別是never的子型別,這意味著生命never的變數只能被never型別所賦值。

never型別一般用來指定哪些總是會丟擲異常,無限迴圈

let a:never;
a = 123; // 錯誤的寫法

a = (() => { // 正確的寫法
    throw new Errow('錯誤')
})()

// 返回的never的函數必須存在無法達到的終點
function error(message:string): never {
    thorw new Error(message);
}

object

物件型別,非原始型別,常見的形式通過{}進行包裹

let obj:object;
obj = {name:'Zhang',age:23};

總結

和javascript基本一致,也分成:

  • 1、基本型別
  • 2、參照型別

在基礎型別上,typescript增添了void、any、emun等原始型別。

到此這篇關於Typescript資料型別的文章就介紹到這了,更多相關Typescript資料型別內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com