如何进行类型约束
仅需要在 变量、函数的参数、函数的返回值位置加上:类型
ts在很多场景中可以完成类型推导
any: 表示任意类型,对该类型,ts不进行类型检查
基本类型
- number:数字
- string:字符串
- boolean:布尔
- 数组
- object: 对象
- null 和 undefined
null和undefined是所有其他类型的子类型,它们可以赋值给其他类型
通过添加strictNullChecks:true
,可以获得更严格的空类型检查,null和undefined只能赋值给自身。
# 举个例子-应用场景
function isOdd(n: number):boolean {
return n % 2 === 0;
}
let nums: number[] = [3, 4, 5];
let nums: Array<number> = [3, 4, 5];
let u:object = {};
let test: string = null;
function printValues(obj: object) {
const vals = Object.values(obj);
vals.forEach(v => console.log(v))
}
其他常用类型
- 联合类型:多种类型任选其一
配合类型保护进行判断
类型保护:当对某个变量进行类型判断之后,在判断的语句块中便可以确定它的确切类型,typeof可以触发类型保护。
-
void类型:通常用于约束函数的返回值,表示该函数没有任何返回
-
never类型:通常用于约束函数的返回值,表示该函数永远不可能结束
-
字面量类型:使用一个值进行约束
-
元祖类型(Tuple): 一个固定长度的数组,并且数组中每一项的类型确定
-
any类型: any类型可以绕过类型检查,因此,any类型的数据可以赋值给任意类型
# 举个例子-应用场景
let name: string | undefined;
if(typeof name === 'string') { // 触发类型保护
// name
}
function SayHi(): void {
console.log("Hello HuangBingQuan!")
}
function throwError(msg: string):never { // nerver通常用于约束函数的返回值,表示这个函数永远不会结束
throw new Error(msg)
console.log("111")
}
let a: 6;
a = 6;
let gender: "男" | "女";
gender = "男"
let user: { name: string, age: number };
user = {
name: "34",
age: 33
}
let tu: [string, number];
tu = ["3", 4];
let data:any = "sasdas";
let num:number = data;
标签:string,数据类型,number,Ts,let,类型,any,name
From: https://www.cnblogs.com/bingquan1/p/17496532.html