TypeScript的数据类型系统

TypeScript的数据类型系统

在上一篇文章中,我们介绍了TypeScript的基本概念和它与JavaScript的关系。TypeScript的核心优势之一是其强大的类型系统,它提供了丰富的数据类型,使得代码更加可靠和易于维护。本文将深入探讨TypeScript中的各种数据类型,以及如何在实际编程中使用它们。

内置数据类型

TypeScript不仅继承了JavaScript的所有基本数据类型,还引入了一些新的类型。以下是一些常见的内置数据类型:

基本数据类型

  • string: 用于表示文本数据。

    let message: string = "Hello, World!";
    
  • number: 用于表示数值。它是一个包含所有数字类型的联合类型,包括intfloatdouble等。

    let score: number = 100;
    
  • boolean: 表示逻辑值,只能是truefalse

    let isCorrect: boolean = true;
    
  • nullundefined: 这两个特殊值表示“无”或“未定义”。

    let notSet: undefined;
    let noValue: null;
    
  • bigint: 用于表示大于Number.MAX_SAFE_INTEGER的整数。

    let bigNumber: bigint = 9007199254740991n;
    
  • symbol: 一个唯一的、不可变的原始值,通常用于创建对象属性的键。

    let sym: symbol = Symbol('unique');
    

复杂数据类型

  • array: 表示元素序列,可以使用类型注解来指定数组中元素的类型。

    let numbers: number[] = [1, 2, 3];
    let strings: Array<string> = ['a', 'b', 'c']; // 等价于上一行
    
  • tuple: 表示一个已知元素数量和类型的数组,但允许不同类型的元素。

    let tuple: [string, number] = ['Kimi', 30];
    
  • enum: 枚举类型,用于定义一组命名的常量。

    enum Color {Red, Green, Blue}
    let color: Color = Color.Blue;
    

自定义类型

除了内置类型,TypeScript还允许你使用type关键字自定义新的类型。自定义类型可以是交叉类型、联合类型、映射类型等。

字面量类型

字面量类型可以让你定义一个只能是特定值的类型。

let gender: "male" | "female" = "male";

any 类型

any类型可以是任何类型,使用any类型会失去类型检查的好处,但有时它可以用来解决一些兼容性问题。

let anyValue: any = "Hello"; // 也可以是数字、布尔值等

unknown 类型

unknown类型是any类型的安全替代品。它表示一个不确定类型的值,必须经过类型检查才能使用。

let unknownValue: unknown = "Hello";
if (typeof unknownValue === "string") {console.log(unknownValue.toUpperCase()); // HELLO
}

never 类型

never类型表示那些永不存在的值,例如,一个总是抛出错误的函数的返回类型。

function throwError(): never {throw new Error("Something went wrong!");
}

void 类型

void类型表示没有任何类型,通常用作函数返回类型,表示该函数不返回任何值。

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

结语

通过本文的介绍,我们了解了TypeScript中的各种数据类型,包括基本类型、复杂类型以及如何自定义类型。这些类型为TypeScript提供了强大的类型检查能力,有助于我们在开发过程中捕捉错误和提高代码质量。在后续的文章中,我们将继续探索TypeScript的其他特性,如类与接口、泛型等,并提供实际的代码示例和最佳实践。


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/707032.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

gpt4o在哪用?

GPT-4o功能&#xff1f; 1.感知用户情绪&#xff1a;前沿研究部门主管陈信翰&#xff08;Mark Chen&#xff09;让ChatGPT-4o聆听他的呼吸&#xff0c;聊天机器人侦测到他急促的呼吸&#xff0c;并幽默地建议他不要像吸尘器那样呼吸&#xff0c;要放慢速度。随后Mark深呼吸一次…

浏览器插件Video Speed Controller(视频倍速播放),与网页自身快捷键冲突/重复/叠加的解决办法

浏览器插件Video Speed Controller&#xff08;视频倍速播放&#xff09;&#xff0c;与网站自身快捷键冲突/重复/叠加的解决办法 插件介绍问题曾今尝试的办法今日发现插件列表中打开Video Speed Controller的设置设置页面翻到下面&#xff0c;打开实验性功能。将需要屏蔽的原网…

邮件API接口的优势有哪些?如何有效整合?

邮件API怎么选&#xff1f;SendCloud与AokSend的性能对比分析&#xff1f; 邮件API接口作为企业与用户沟通的重要桥梁&#xff0c;其重要性不言而喻。Aok将深入探讨邮件API接口的优势、有效整合的方法、选择标准以及SendCloud与AokSend两款邮件发送服务的性能对比分析。 邮件…

杨校老师项目之基于SpringBoot+Shiro+Vue的企业人事管理系统

1.获取代码&#xff1a; 有偿获取&#xff1a;mryang511688 2.技术栈 后端 SpringBoot MySQL mybatis-plus shiro Redis 前端 Vue Element-UI 3.开发环境 JDK1.8、Maven3.5.4、MySQL5.7、Redis5.0.5、IntelliJ IDEA、nodejs 4.内置功能 Springboot的项目&#xff0c;…

Hive的窗口函数

定义&#xff1a; 聚合函数是针对定义的行集(组)执行聚集,每组只返回一个值.如sum()、avg()、max() 窗口函数也是针对定义的行集(组)执行聚集,可为每组返回多个值.如既要显示聚集前的数据,又要显示聚集后的数据.步骤&#xff1a; 1.将记录分割成多个分区. 2.在各个分区上调用窗…

工业派-配置Intel神经计算棒二代(NCS2)

最近两天在工业派ubuntu16.04上配置了Intel神经计算棒二代——Intel Neural Compute Stick&#xff0c;配置过程之艰辛我都不想说了&#xff0c;实在是太折磨人。不过历尽千辛万苦&#xff0c;总算让计算棒可以在工业派ubuntu16.04系统上跑了&#xff0c;还是蛮欣慰的。 注&…

究极完整版!!Centos6.9安装最适配的python和yum,附带教大家如何写Centos6.9的yum.repos.d配置文件。亲测可行!

前言&#xff01; 这里我真是要被Centos6.9给坑惨了&#xff0c;最刚开始学习linux的时候并没有在意那么的&#xff0c;没有考虑到选版本问题&#xff0c;直到23年下半年&#xff0c;官方不维护Centos6.9了&#xff0c;基本上当时配置的文件和安装的依赖都用不了了&#xff0c…

干式蒸发器、满液式蒸发器以及降膜式蒸发器的介绍

干式蒸发器 1、干式蒸发器原理、定义 干式蒸发器制冷剂在换热管内通过&#xff0c;冷水在高效换热管外运行&#xff0c;这样的换热器换热效率相对较低&#xff0c;其换热系数仅为光管换热系数的2倍左右&#xff0c;但是其优点是便于回油&#xff0c;控制较为简便&#xff0c;…

零知识证明:哈希函数-Poseidon2代码解析与benchmark

1、哈希函数(Hash Function)与Poseidon 在密码学中,哈希函数是一种将任意大小的数据映射到固定大小的输出的函数。哈希函数的输出称为哈希值或哈希码。哈希函数具有单向性和抗碰撞性。一些常见的哈希函数包括 MD5、SHA-1、SHA-256 和 SHA-3。例如,假设您要验证一个文件的完整…

四川易点慧电商抖音小店运营秘籍引领电商新潮流

在当今数字化浪潮中&#xff0c;抖音小店作为电商领域的一匹黑马&#xff0c;以其独特的社交属性和庞大的用户基础&#xff0c;正迅速崛起为新的销售增长点。四川易点慧电子商务有限公司&#xff0c;作为电商行业的佼佼者&#xff0c;深谙抖音小店运营的精髓&#xff0c;专业助…

基于vs和C#的WPF应用之动画4---跳跳球

一、画布和图形 <Canvas x:Name"canvas4" Grid.Row"1" Grid.Column"1" Width"200" Height"200"><Canvas.Triggers><EventTrigger RoutedEvent"Loaded"><BeginStoryboard Storyboard"…

Hotcoin Research|玩赚WEB3:探索Apeiron:颠覆传统的区块链游戏,融合神话与现代玩法

1. 游戏概述 1.1 游戏类型与主题 Apeiron 是一款结合了上帝模拟、Roguelike、动作角色扮演&#xff08;ARPG&#xff09;和卡牌游戏元素的区块链游戏。这款游戏以独特的方式融合了多种游戏类型&#xff0c;提供了一个丰富多彩的神话宇宙&#xff0c;每个星系都受到不同现实世…