TypeScript 基本類型檢查

如何進行類型檢查

時候用 :

 let name:string = '13'
 let nums: number[] = [1] // 每一項爲 number 的數組
 let nums: Array<number> = [1] // 每一項爲 number 的數組
 function sum(a: number, b:number): number{
	return a + b
 }

f2 重命名,因爲有類型檢查,所以可以一次性重命名。
f12 調轉到定義。
ts 有智能類型推到,有時候我們沒有寫類型的時候。

ts 支持哪些基本類型

  1. number: 小寫,數字

  2. boolean: 小寫,布爾

  3. string: 小寫,字符串

  4. number[] 或者 Array: 數組,number 只是個例子,可以改成其他類型,表示某種類型的數組

  5. object: 對象

  6. null 和 undefined: 是所有其他類型的子類型,可以賦值給其他類型。爲了更加嚴格的空類型價差,通過在配置文件中添加, strictNullChecks: true, 這樣它們就只能賦值給自生了。

  7. 聯合類型: let name: string | undefined = undefined。相當於或。可以使用 typeof 判斷類型

let name: string | undefined = undefined
if(typeof name === "string") { // 類型保護. 觸發類型保護的方式有很多,typeof 算一種
	
}
  1. void 類型: 通常用來表示函數沒有任何返回值
  2. never 類型: 通常用於約束函數的返回值,表示函數永遠不能能結束
	function throwError(msg: string):never {
		throw new Error(msg)
		console.log('xxx')
	}
	function whileTest() {
		while(true) {
		}
	}
	
  1. 字面量類型: 表示使用一個值進行約束 let a:"A" 表示 a 只能爲 ”A“,不能改變
	let a:"A"
	let gender: "boy" | "girl"
	let arr: [] // 永遠只能是一個空數組
	let user: { // user 只能是這種類型, 裏面會包含 name 和 age
		name: string,
		age: number
	}
  1. 元祖類型 (Tuple):一個固定長度的數組,並且數組中每一項的類型確定
let tu: [string, number] // 只能有兩項
  1. any 類型:可以繞過類型檢查,可以賦值給任意類型

類型別名

對已知的一些類型定義名稱

type Gender = "nan" | "nu"
type user: {
	name: string,
	age: number,
	gender: Gender
}
let u: user
function getUsers(g: Gender):User[] {
	return []
}

函數相關的約束

// 函數重載
// 約束了之後,只會有這兩種情況
function combine(a:number, b:number):number
function combine(a:string, b:string):string
function combine(a: number | string, b:number | string): number | string {
	if(typeof a === "number" && typeof b === "number") {
		return a * b
	}
	if(typeof a === "string" && typeof b === "string") {
		return a + b
	}
}
// 可選參數。加一個 ? 表示可加這個參數可不加這個參數。只能寫在參數末尾
function sum(a:number, b:number, c?:number){}
// 默認參數
function sum(a:number, b:number, c:number = 0){}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章