Ts数据类型
如何进行类型约束
仅需要在 变量、函数的参数、函数的返回值位置加上:类型
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;
本文作者:HuangBingQuan
本文链接:https://www.cnblogs.com/bingquan1/p/17496532.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
2022-06-21 React事件处理方法中this指向为undefined的四种解决方案