TypeScript基本型別檢查

2021-09-24 08:25:45 字數 3017 閱讀 4358

ts是乙個可選的靜態的型別系統

如何進行型別約束
let aaa:string = 'hello';

function

sum(a:number, b:number

):number

let nums:number = [1, 2, 3];

let num:number = sum(3, 4); // 第一種

let numss: array

= [1, 2, 3]; // 第二種

複製**

==因為ts有嚴格的型別檢查,在對函式重新命名的時候,可以使用f2來全域性替換。==

快捷鍵f12:轉到定義

ts在很多場景中推導出資料型別

any: 表示任意型別,對該型別,ts不進行型別檢查

小技巧:如何區分數字字串和數字,關鍵看怎麼讀?

如果按照數字的方式讀,就是數字。

源**和編譯結果的差異

編譯結果中沒有型別約束資訊

null和undefined是所有其他型別的子型別,他們可以賦值給其他型別

通過在tsconfig.json中的compileroptions新增strictnullchecks: true, 可以獲得更加嚴格的空型別檢查,之後null和undfined只能賦值給自身。

型別保護: 當對某個變數進行型別判斷之後,在判斷語句塊中便可以確定它的確切型別,typeof可以觸發型別保護。

let name: string | undefined;

if(typeof name === "string")

複製**

function

printmenu():void

複製**

function

throwerror(msg: string):never

function

alwaysdosomething():never

}複製**

let gender: "男"| "女"; //表示gender永遠只能為男或者女

let a:"a"; // a永遠只能為a

let b:1;

let user: ;// user必須要有name,age

複製**

let tu:[string, number];

tu = ["d", 2];

複製**

let data:any = 123;

let bb: number = data

複製**

// 防止重複的書寫**

type gender = "男" | "女"

type user =

let u:user

u =

function getusers(g:gender):user

複製**

函式過載:
/**

* 得到a*b的結果

* @param a

* @param b

*/function

combine(a:number, b:number

):number

;/**

* 得到a和b拼接的結果

* @param a

* @param b

*/function

combine(a:string, b:string

):string

;function

combine(a: number | string, b: number | string

): number | string

else

if(typeof a === "number" && typeof b === "number")

throw

newerror("a和b必須是相同的型別");

}const result = combine(1,2); // 自動監測出返回值為number

複製**

可選引數:可以在某些引數後面加上問號,表示這些引數可以不用傳遞
function

sum(a: number, b:number, c?:number

):number

return a + b;

}複製**

在開發的過程中有智慧型提示,減少**的錯誤,提公升**開發效率

type deck = normalcard

type color = "♥" | "♠" | "♦" | "♣"

type normalcard =

function createddeck(): deck );

deck.push();

deck.push();

deck.push()

}return deck;

}function

printdeck(deck: deck): void

else

if (card.mark == 11)

else

if (card.mark == 12)

else

if (card.mark == 12)

result += str + "\t";

if(((index + 1) % 4) == 0)

})console.log(result);

}const deck = createddeck();

printdeck(deck);

複製**

typescript的基本型別

1.布林boolean 2.數字number 3.字串string 4.陣列number 或者array 5.元組tuple 6.列舉enum 7.給變數指定任何型別any 8.返回值任何型別void 9.無返回型別never 10.非原始型別object 表示除了上述的型別之外的 11斷言 第一種...

資料基本型別及對應基本型別類

基本資料型別 char 16位 byte 8位 short 16位 int 32位 long,float,double,boolean 基本資料型別對應類 character,byte,short,integer,long,float,double,boolean,string 幾乎所有型別類都有相...

oracle 基本型別

資料型別 引數描述 char n n 1 to 2000位元組 定長字串,n位元組長,如果不指定長度,預設為1個位元組長 乙個漢字為2位元組 varchar2 n n 1 to 4000位元組 可變長的字串,具體定義時指明最大長度n,這種資料型別可以放數字 字母以及ascii碼字符集 或者ebcdi...