從3.2開始,ts內置了bigint
類型來支持理論上任意大的整數類型。使用該類型,須要指定配置文件的target
爲ES2020
以上,如ESNEXT
:html
{
"compilerOptions": {
"target": "ESNEXT"
}
}
複製代碼
使用bigint
類型的變量有兩個方式:使用bigint
類型標識,並在數字結尾加n
;或者使用Bigint()
函數。typescript
const bigintVal: bigint = 1n;
const bigintVal2: bigint = BigInt(10);
複製代碼
注意雖然上一節講到的number
和bigint
都是表明數字,可是二者徹底不一樣。json
const bigintVal: bigint = 1n;
const numVal1 = 1;
// Cannot assign to 'bigintVal' because it is a constant
bigintVal = numVal1;
// false
bigintVal === numVal1;
複製代碼
數組是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;
複製代碼
元組和數組的形式很是類似,至關因而指定長度和變量類型的數組,且各個元素的類型沒必要相同。ui
const tuple1: [string, number, boolean] = ["str", 1, true];
複製代碼
元組的各個元素必須和指定類型一致,而且元素個數不能多也不能少,必須嚴格按照聲明類型,不然會報錯。spa