ts 常用宣告的資料型別

2021-10-10 09:38:45 字數 2670 閱讀 5574

/**

* 1.1 ts 如何宣告乙個boolean, number, string型別的值

*/// 在js中,定義 isflag 為true, 但是後面還可以重新給它賦值為字串,而ts中就不行,同理,宣告number, string 也一樣

let bool: boolean = true;

// 會報錯:不能將型別「"str"」分配給型別「boolean」。

// isflag = "str"

let str: string = "a";

// 會報錯:不能將型別「1」分配給型別「string」。

// str = 1

let num: number = 1;

// 會報錯:不能將型別「"a"」分配給型別「number」。

// num = "a"

/** *

* ** 1.2 ts 如何宣告乙個 undefined, null 型別的值

*/let u: undefined = undefined;

let n: null = null;

/** *

* ** 1.3 ts 如何宣告乙個陣列

*/// 方式一:宣告乙個每一項只能是string型別的陣列。在元素型別後面接上,表示由此型別元素組成乙個陣列

let arr1: string = ["a", "b"];

// 方式二:使用陣列泛型,array《元素型別》

let arr2: array= ["a", "b"];

// 方式三:利用介面: ts的核心原則是對值所具有的結構進行型別檢查,介面的作用就是為這些型別命名和為你的**或第三方**定義契約

inte***ce numberarray

let arr3: numberarray = [1, 2, 3];

// 陣列裡想放物件?

let arr4: array= [, ];

// 陣列裡想放多種資料型別? 用 | 隔開就好

let arr5: array= ["a", 1];

// 陣列裡想放任意型別?

let arr6: array= ["a", 1, true, , [1, 2]];

/** *

* ** 1.4 ts 如何宣告乙個物件

*/// 利用介面

inte***ce oa

let obj1: oa = ;

let obj2: oa = ;

// 這種情況下name 和 id 屬性必須要,age屬性可要可不要,但是除了這三種屬性外,其它的屬性都不准出現

// let obj3:oa = // 會報錯

// 有時候還是希望乙個物件允許有任意的屬性怎麼辦?

inte***ce ob

let obj4: ob = ;

let obj5: ob = ;

let obj6: ob = };

/** *

* ** 1.5 ts 如何宣告乙個函式

*/// 一: :void 表示函式沒有返回值

function fn2(x: number): void

// 二: 這裡表示sum 函式接收兩個引數(多了少了都不行), 引數型別是 number, 返回值也是number

function fn1(x: number, y: number): number

// 三: 同樣也可以用?來表示可選引數,但是可選引數只能放到最後面

function fn3(x: number, y?: number): number

return x;

}// 四:ts 怎麼表示預設引數

function fn41(x: number, y: number = 1): number

// 傳值的時候,預設引數可以不傳

fn41(1);

fn41(1, 2);

// 預設引數不像可選引數必須放後面,它也可以放前面, 但是還是推薦放後面去

function fn42(x: number = 1, y: number): number

// 傳值的時候,預設引數可以不傳,但是如果預設引數不放後面,這樣傳值感覺很怪

fn42(undefined, 2);

// 五:ts表示剩餘引數。利用擴充套件運算子

function fn52(array: any, ...items: any) )

}// 六:箭頭函式

// es6 箭頭函式:沒有引數的時候

// let fn61 = () => {}

// es6 箭頭函式:乙個引數的時候,可以不用圓括號

// let fn62 = arg =>

// es6 箭頭函式:多個引數的時候,如果致謝一行的話,不用大括號和return

// let fn63 = (arg1, arg2) => arg1 + arg2;

// es6 箭頭函式:多個引數並且換行的時候,需要寫大括號和return

// let fn64 = (arg1, arg2) =>

// es6 箭頭函式:返回乙個物件,必須在物件外面加上圓括號

// let fn65 = (arg1, arg2) => ()

// es6 上例中一般會不改名字,同名可以縮寫成這樣

// let fn66 = (arg1, arg2) => ()

ts 宣告變數型別

ts中,宣告變數時可以同時指定其型別,格式 var name string forrest 這樣,當 name 1 會報錯,因為name已經指定了string型別如果想指定變數為可變型別,可以 var name any forrest 注意,即使name被指定為string型別,在ts中不能複製數字...

TS 的型別宣告和變數型別

一 型別宣告 型別宣告是 ts 非常重要的乙個特點,通過型別宣告可以指定 ts 中變數 引數 形參 的型別 當為變數賦值時,ts編譯器會自動檢查值是否符合型別宣告,符合則賦值,否則報錯 簡而言之,型別宣告給變數設定了型別,使得變數只能出儲存某種型別的值,這是 js 不具備的 語法 let a num...

ts基本資料型別

布林型別 let bool1 boolean false let bool2 boolean bool2 false 數值型別,支援二進位制,八進位制,十六進製制的值 let num number 1234 num 0b1111011 num 0o173 num 0x7b 字串型別 let str ...