/**
* 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 ...