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){}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值