当前位置: 首页 > news >正文

【TypeScript】03-TypeScript基本类型

TypeScript基本类型

在TypeScript中,基本类型是非常重要的一部分,下面我们将详细介绍TypeScript中的基本类型。

基本类型约束

在TypeScript中,可以使用基本类型来约束变量的类型。常见的基本类型有:

  • number:表示数字类型,包括整数和浮点数。
  • string:表示字符串类型。
  • boolean:表示布尔类型,只有两个值true和false。
  • type[]:表示数组类型,包含多个同类型元素。
  • object:表示对象类型,可以包含多个键值对。

除此之外,还有两个特殊的基本类型:

  • null:表示空对象。
  • undefined:表示未定义的值。

需要注意的是,null和undefined是其他类型的子集,可以赋值给其他类型。如果要获得更严格的空类型检查,可以添加strictNullChecks: true,此时null和undefined只能赋值给本身。

其他常用类型

除了上述基本类型外,还有一些其他常用类型:

联合类型

联合类型是指一个变量可以同时具有多种类型。可以使用竖线|来连接不同的类型。例如:

let x: number | string;
x = 1; // 正确
x = "hello"; // 正确
x = true; // 错误,布尔类型不是x的类型之一

当对联合类型的变量进行类型判断之后,TypeScript会自动推断出变量的确切类型,这种过程叫做类型保护。例如:

function printId(id: number | string) {if (typeof id === "number") {console.log(`Your id is ${id.toFixed(0)}`);} else {console.log(`Your id is ${id.toUpperCase()}`);}
}

void类型

void类型表示没有任何返回值的函数,通常用于约束函数的返回值。例如:

function sayHello(): void {console.log("Hello TypeScript!");
}

never类型

never类型表示一个函数永远不可能结束,通常用于约束函数的返回值。例如:

function throwError(msg: string): never {throw new Error(msg);
}

字面量类型

字面量类型是指使用一个值进行约束,例如约束性别字段。可以使用单引号或双引号包裹值。例如:

type Gender = "male" | "female" | "other";
let gender: Gender = "male"; // 正确
gender = "unknown"; // 错误,"unknown"不是Gender类型之一

元组类型

元组类型是指一个固定长度的数组,并且每一项的类型也确定。可以使用方括号和类型列表来定义元组类型。例如:

let person: [string, number] = ["Tom", 18];

any类型

any类型表示不确定的类型,可以绕过类型检查,可以赋值给任意变量。在TypeScript中,尽量少使用any类型,因为它会降低代码的可维护性。

类型别名

类型别名是指使用type关键字和自定义名称来定义类型,可以用来简化复杂类型。例如:

type UserId = number | string;
function getUserById(id: UserId) {// ...
}

函数的相关约束

在TypeScript中,可以对函数的参数、返回值等进行约束。常见的约束方式有:

函数重载

函数重载是指在函数之前,对函数调用的多种情况进行声明。例如:

function add(x: number, y: number): number;
function add(x: string, y: string): string;
function add(x: any, y: any): any {return x + y;
}

可选参数

可选参数是指可以在某些参数名后加上问号?,表示该参数为可选参数,可选参数必须在参数列表的末尾。例如:

function printName(firstName: string, lastName?: string) {if (lastName) {console.log(`My name is ${firstName} ${lastName}.`);} else {console.log(`My name is ${firstName}.`);}
}

总结

本文介绍了TypeScript中的基本类型,包括基本类型约束、其他常用类型、类型别名和函数的相关约束。TypeScript的类型系统可以帮助开发者更好地捕获潜在的错误,并提高代码的可维护性。在使用TypeScript时,建议尽量使用类型约束,以减少潜在的错误。

http://www.lryc.cn/news/62993.html

相关文章:

  • 什么是跨域?
  • Gradle理论与实践—Gradle构建脚本基础
  • 【Vue 基础】vue-cli初始化项目及相关说明
  • 【c语言】详解c语言#预处理期过程 | 宏定义前言
  • 内网远程控制软件哪个好用
  • 【计算机基本原理-数据结构】数据结构中树的详解
  • 数字设计小思 - D触发器与死缠烂打的亚稳态
  • Notes/Domino 11.0.1FP7以及在NAS上安装Domino等
  • 【VM服务管家】VM4.x算子SDK开发_3.3 模块工具类
  • Aspose.Pdf使用教程:在PDF文件中添加水印
  • H.264/AVC加密----选择加密
  • WuThreat身份安全云-TVD每日漏洞情报-2023-04-26
  • 剑指 Offer第二版:1~n 整数中 1 出现的次数、51. 数组中的逆序对、56 - II. 数组中数字出现的次数 II
  • 云原生-k8s核心概念(pod,deploy,service,ingress,configmap,volume)
  • 他工作10年,老板却让他走人
  • vpp怎么写node
  • 【4. ROS的主要通讯方式:Topic话题与Message消息】
  • 【react全家桶学习】react中组件定义及state属性(超详/必看)
  • 如何以产品经理思维打造一所高品质学校?
  • 根治Spring中使用Mongo时报错InvalidMongoDbApiUsageException
  • 【计算机组成原理】数据的表示和运算·进位计数制
  • C++ Primer第五版_第十四章习题答案(21~30)
  • 服务器性能调优
  • 带你深入学习k8s--(三) pod 管理
  • 前端系列11集-ES6 知识总结
  • 连接分析工具箱 | 利用CATO进行结构和功能连接重建
  • 【目标检测论文阅读笔记】Detection of plane in remote sensing images using super-resolution
  • 外卖app开发流程全解析
  • BUUCTF jarvisoj_level0
  • 网络安全之入侵检测