常見類型 -- Typescript基礎篇(3)

Bigint

3.2開始,ts內置了bigint類型來支持理論上任意大的整數類型。使用該類型,須要指定配置文件的targetES2020以上,如ESNEXThtml

{
  "compilerOptions": {
    "target": "ESNEXT"
  }
}
複製代碼

使用bigint類型的變量有兩個方式:使用bigint類型標識,並在數字結尾加n;或者使用Bigint()函數。typescript

const bigintVal: bigint = 1n;
const bigintVal2: bigint = BigInt(10);
複製代碼

注意雖然上一節講到的numberbigint都是表明數字,可是二者徹底不一樣。json

const bigintVal: bigint = 1n;
const numVal1 = 1;

// Cannot assign to 'bigintVal' because it is a constant
bigintVal = numVal1;

// false
bigintVal === numVal1;
複製代碼

數組(Array)

數組是js中十分常見的數據類型,在ts中對數組的定義能夠是:數組

  • 類型 + 方括號
  • 使用Array泛型(泛型章節對此有更詳細的說明)
const arr1: string[] = ["str1", "str2"];
const arr2: Array<string> = ["str1", "str2"];

// 二維數組
const arr3: string[][] = [
  ["str1", "str2"],
  ["str3", "str4"],
];
const arr4: Array<Array<string>> = [
  ["str1", "str2"],
  ["str3", "str4"],
];
複製代碼

指定了類型的數組不容許出現其餘類型的變量,如string[]類型的數組中不容許出現number類型變量函數

數組聲明還有一個只讀數組,便是用readonly關鍵字或者 ReadonlyArray泛型聲明的數組,只讀數組在建立後不能作任何修改,而且不能把一個只讀數組的變量賦值給一個常規數組post

const a: readonly number[] = [1, 2, 3];

const arr: ReadonlyArray<string> = [];

// error
arr.push(1);
arr.length = 1;
arr[0] = "1";

// string[] Cannot assign to 'arr1' because it is a constant
const arr1: string[] =arr;
複製代碼

元組(Tuple)

元組和數組的形式很是類似,至關因而指定長度和變量類型的數組,且各個元素的類型沒必要相同。ui

const tuple1: [string, number, boolean] = ["str", 1, true];
複製代碼

元組的各個元素必須和指定類型一致,而且元素個數不能多也不能少,必須嚴格按照聲明類型,不然會報錯。spa

相關文章
相關標籤/搜索