TypeScript基础知识:高级数据类型

这篇具有很好参考价值的文章主要介绍了TypeScript基础知识:高级数据类型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        TypeScript 是一种静态类型检查的 JavaScript 超集,它提供了许多强大的高级数据类型,可以帮助我们更好地定义和操作数据。本文将深入介绍 TypeScript 的高级数据类型,包括交叉类型、联合类型和映射类型,并通过示例代码演示它们的用法和优势。

一、交叉类型(Intersection Types)

        交叉类型用于将多个类型合并为一个新的类型。通过使用 & 符号,我们可以将多个类型进行交叉操作。交叉类型的结果是一个包含了所有交叉类型成员的新类型。

interface Person {
  name: string;
  age: number;
}

interface Employee {
  companyId: string;
  position: string;
}

type EmployeePerson = Person & Employee;

const employeePerson: EmployeePerson = {
  name: "John",
  age: 30,
  companyId: "ABC123",
  position: "Manager",
};

在上面的示例中,我们定义了 Person  Employee 接口,然后使用交叉类型 EmployeePerson 将它们合并为一个新的类型。这样,EmployeePerson 类型就同时具有了 Person  Employee 接口中的属性和方法。

二、联合类型(Union Types)

        联合类型允许一个值具有多种可能的类型。通过使用 | 符号,我们可以将多个类型定义为一个联合类型。当我们需要处理多个类型的值时,联合类型非常有用。

type Status = "success" | "error" | "loading";

function getStatusMessage(status: Status): string {
  switch (status) {
    case "success":
      return "Operation successful";
    case "error":
      return "An error occurred";
    case "loading":
      return "Loading data";
    default:
      throw new Error("Invalid status");
  }
}

const successMessage = getStatusMessage("success");
console.log(successMessage); // Output: "Operation successful"

在上述示例中,我们定义了一个 Status 类型,它只能取三个字符串字面量值之一。然后,我们编写了一个函数 getStatusMessage,它接受一个 Status 类型的参数,并返回相应的消息。通过使用联合类型,我们可以在函数内部使用 switch 语句来处理不同的状态。

三、映射类型(Mapped Types)

        映射类型允许我们基于现有类型创建新类型。通过使用泛型和索引签名,我们可以对现有类型的属性进行修改、添加或删除。

interface Person {
  name: string;
  age: number;
}

type ReadonlyPerson = Readonly<Person>;
// ReadonlyPerson: { readonly name: string; readonly age: number; }

type PartialPerson = Partial<Person>;
// PartialPerson: { name?: string; age?: number; }

type PickPerson = Pick<Person, "name">;
// PickPerson: { name: string; }

type RecordPerson = Record<"id", Person>;
// RecordPerson: { id: Person; }

在上面的示例中,我们使用了几个常见的映射类型。Readonly<T> 将属性设置为只读,Partial<T> 将属性设置为可选,Pick<T, K>  T 中选择指定的属性,Record<K, T> 将属性值映射到指定的类型。

总结

        本文介绍了 TypeScript 的高级数据类型,包括交叉类型、联合类型和映射类型。通过合理地运用这些高级数据类型,我们可以更好地定义和操作数据,提高代码的可读性和可维护性。希望这篇文章对你理解 TypeScript 的高级数据类型有所帮助。文章来源地址https://www.toymoban.com/news/detail-797405.html

到了这里,关于TypeScript基础知识:高级数据类型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【03】基础知识:typescript中的函数

    函数声明法 函数表达式/匿名函数 1、typescript 中定义函数传参 函数声明 函数表达式/匿名函数 2、可选参数 在 es5 中,方法的形参和实参个数可以不一样;但是在 ts 中必须一样,如果不一样就需要配置可选参数。 ts 中 通过【 形参?: 数据类型 】形式定义可选参数,代表该参数

    2024年02月13日
    浏览(30)
  • 两小时快速入门 TypeScript 基础(一)工作流、基本类型、高级类型

    个人简介 👀 个人主页: 前端杂货铺 🙋‍♂️ 学习方向: 主攻前端方向,也会涉及到服务端(Node.js 等) 📃 个人状态: 2023届本科毕业生,已拿多个前端 offer(秋招) 🚀 未来打算: 为中国的工业软件事业效力 n 年 🥇 推荐学习:🍍前端面试宝典 🍉Vue2 🍋Vue3 🍓Vue2/

    2024年02月11日
    浏览(31)
  • 【01】基础知识:typescript安装及使用,开发工具vscode配置

    typeScript 是由微软开发的一款开源的编程语言。 typeScript 是 javascript 的超级,遵循最新的 es6、es5规范。 typeScript 扩展了 javaScript 的语法。 typeScript 更像后端 java、C# 这样的面向对象语言,可以让 js 开发大型企业项目。 全局安装:$ npm install -g typescript 查看 typescript 版本:$ ts

    2024年02月13日
    浏览(40)
  • TypeScript之高级类型

    除了 string 、 number 、 boolean  这种基础类型外,在  typescript  类型声明中还存在一些高级的类型应用 这些高级类型,是 typescript 为了保证语言的灵活性,所使用的一些语言特性。这些特性有助于我们应对复杂多变的开发场景 常见的高级类型有如下: 交叉类型 联合类型 类型

    2024年02月06日
    浏览(31)
  • TypeScript高级类型:联合类型、交叉类型和类型别名

    TypeScript 是一门强类型语言,其高级类型功能使得开发者能够更加灵活地定义类型并对其进行操作,以便于更好地编写可维护和可扩展的代码。 在本文中,将着重讨论三种高级类型:联合类型、交叉类型和类型别名。我们将详细介绍这些类型,并且还会提供一些有用的代码示

    2024年02月10日
    浏览(29)
  • 【前端进阶】-TypeScript高级类型 | 交叉类型、索引签名类型、映射类型

    前言 博主主页👉🏻蜡笔雏田学代码 专栏链接👉🏻【TypeScript专栏】 上篇文章讲解了TypeScript部分高级类型 详细内容请阅读如下:🔽 【前端进阶】-TypeScript高级类型 | 类的初始化、构造函数、继承、成员可见性 今天来学习TypeScript另外一些高级类型! 感兴趣的小伙伴一起来

    2023年04月08日
    浏览(25)
  • 前端TypeScript学习day03-TS高级类型

    (创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹)            目录 TypeScript 高级类型 class 类 class继承  extends implements  类成员可见性  public  protected  private   readonly 兼容性 类型兼容性 接口兼容性  函数兼容性  TypeScri

    2024年02月08日
    浏览(27)
  • 【TypeScript】基础类型

    https://nodejs.org/en 终端中可以查到版本号即安装成功。 然后,终端执行 npm i typescript -g 安装 TypeScript 。 查到版本号即安装成功。 终端中先执行 tsc --init ,然后执行 tsc -w 。发现原本TS文件夹中只有index.ts,现在多了两个文件。 再开一个终端,执行 即可输出。 同样支持模板字符

    2024年02月12日
    浏览(18)
  • TypeScript的基础类型

    1. boolean类型: boolean表示布尔值类型,即true和false。例: 2. number类型: number表示数字类型,包括整数和浮点数。例: 3. string类型: string表示字符串类型。例: 4. void类型: void表示没有返回值的函数类型。例: 5. null和undefined类型: null和undefined表示null和undefined值的类型。例

    2024年02月11日
    浏览(31)
  • TypeScript -- 基础类型

    错误示范 正确写法 布尔类型 – boolean 赋值为true 和 false 赋值为Boolean()对象 数字类型 – number 使用 number 定义数值类型 编译结果 字符串类型 – string 数组类型 「类型 + 方括号」 泛型 联合类型 元组类型 枚举类型 – enum 枚举定义 枚举项有两种类型:常数项(constant member)和

    2024年02月15日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包