news 2026/6/10 17:15:34

TypeScript开发基础(4)——数据类型高级特性

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
TypeScript开发基础(4)——数据类型高级特性

1. 联合类型

在TypeScript中,联合类型(Union Types)允许你表示一个值可以是几种类型之一。这对于处理多种可能的数据类型非常有用,通过使用竖线符号(|)来定义一个联合类型。

let arr:(number|string)[]=[1,'a',2,'b'];

2. 类型别名

TypeScript中的类型别名是使用type关键字为现有类型创建一个新名称的机制,旨在提升代码的可读性和可维护性。‌

// 基础运算类型 type BasicOperation = 'add' | 'subtract' | 'multiply' | 'divide'; // 高级运算类型 type AdvancedOperation = 'power' | 'sqrt' | 'percentage' | 'reciprocal'; // 所有支持的运算类型 type Operation = BasicOperation | AdvancedOperation;

3. 交叉类型

交叉类型(Intersection Types)是一种类型,它结合了多个类型的特性。当你有一个交叉类型时,你可以从一个或多个类型中获取成员,这意味着你可以将多个类型的属性合并到一个类型中。

interface Person{ name:string; } interface Contact{ phone:string; } type PersonDetail=Person&Contact; let person:PersonDetail={ name:'张三', phone:'123456789' }

4. 类型推论

TypeScript 的类型推论是指编译器在没有显式类型注解的情况下,根据变量的初始值、函数返回值等上下文自动推断出类型的能力。常用在下面两种情况:

(1)变量初始化

let x = 3; // 类型推断为 number let y = 'hello world'; // 类型推断为 string let z; // 类型推断为 any(未初始化)

(2)函数返回值

function add(a: number, b: 10) { return a + b; // 返回值类型推断为 number }

5. 类型断言

在 TypeScript 中,类型断言是一种告诉编译器你比它更了解你所写的代码的方式,推荐使用as语法进行类型断言。比如,需要获取网页上一个input标签里的内容,需要使用as将获取的标签HTMLElement变成一个HTMLInputElement。

let elUserName:HTMLInputElement=document.getElementById("txtUserName") as HTMLInputElement; let elPassword:HTMLInputElement=document.getElementById("txtPassword") as HTMLInputElement; let strUserName:string=elUserName.value; let strPassword:string=elPassword.value;

6. typeof

TypeScript 中的typeof是一个类型运算符,它允许从一个值推导出其类型,从而在“值”和“类型”之间架起桥梁,使类型能够自动与真实数据保持同步。‌

console.log(typeof "Hello"); //输出string console.log(typeof 123);//输出number console.log(typeof true);//输出boolean console.log(typeof undefined);//输出undefined
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 17:48:10

移动端AI绘图革命:如何在iPhone上实现秒级图像生成

移动端AI绘图革命:如何在iPhone上实现秒级图像生成 【免费下载链接】denoising-diffusion-pytorch Implementation of Denoising Diffusion Probabilistic Model in Pytorch 项目地址: https://gitcode.com/gh_mirrors/de/denoising-diffusion-pytorch 你是否…

作者头像 李华
网站建设 2026/6/9 22:36:58

LobeChat离线模式使用说明

LobeChat离线模式使用说明 在企业对数据安全要求日益严苛的今天,越来越多组织开始质疑:我们真的需要把每一句对话都上传到云端吗?尤其是在金融、医疗和法律这些高度敏感的领域,一个简单的“智能助手”请求背后,可能隐藏…

作者头像 李华
网站建设 2026/6/9 20:31:14

LobeChat版权内容过滤策略

LobeChat版权内容过滤策略 在AI助手逐渐渗透到企业服务、教育辅导乃至公共信息发布的今天,一个看似微小的设计决策——是否允许模型“复刻《流浪地球》的剧情”——可能直接决定产品是走向合规运营还是陷入法律纠纷。这正是LobeChat这类开源可定制聊天界面所面临的现…

作者头像 李华
网站建设 2026/6/9 19:49:14

VRM格式转换中的骨骼结构兼容性问题深度解析

VRM格式转换中的骨骼结构兼容性问题深度解析 【免费下载链接】VRM-Addon-for-Blender VRM Importer, Exporter and Utilities for Blender 2.93 or later 项目地址: https://gitcode.com/gh_mirrors/vr/VRM-Addon-for-Blender 在PMX转VRM的格式转换过程中,骨…

作者头像 李华
网站建设 2026/6/10 15:48:07

LobeChat灰度发布流程:新版本上线的风险控制

LobeChat灰度发布流程:新版本上线的风险控制 在AI聊天应用日益普及的今天,每一次新功能上线都可能牵动成千上万用户的体验神经。尤其是当系统背后依赖的是大语言模型(LLM)这类“黑盒”能力时,一次看似微小的提示词调整…

作者头像 李华
网站建设 2026/6/9 21:19:37

VNote笔记软件安装与配置完整指南:打造专业的Markdown编辑器环境

VNote笔记软件安装与配置完整指南:打造专业的Markdown编辑器环境 【免费下载链接】vnote 项目地址: https://gitcode.com/gh_mirrors/vno/vnote VNote是一款基于Qt框架开发的免费开源笔记软件,专注于提供出色的Markdown编辑体验和高效的笔记管理…

作者头像 李华