首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

TypeScript 中的基础类型:原始类型、对象类型、数组类型、元组类型、枚举类型和联合类型

TypeScript 强大的类型系统使得开发者能够更轻松地编写可维护、可扩展的代码。本文将详细介绍 TypeScript 中的基础类型,包括原始类型、对象类型、数组类型、元组类型、枚举类型和联合类型。...原始类型在 TypeScript 中,有以下几种原始类型:数字类型数字类型用于表示整数或浮点数。可以使用 number 关键字来声明数字变量。...例如:enum Color { Red, Green, Blue,}let color: Color = Color.Green;在枚举类型中,每个枚举成员都有一个与它关联的数字值,默认从 0 开始...也可以手动指定枚举成员的数值。联合类型联合类型用于表示一个变量可以是多种类型之一。可以使用 类型1 | 类型2 | ... 的语法来声明联合类型。...总结本文详细介绍了 TypeScript 的基础类型,包括原始类型、对象类型、数组类型、元组类型、枚举类型和联合类型等方面。

78630
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    类型即正义:TypeScript 从入门到实践(二):函数、交叉联合类型与类型守卫

    欢迎阅读 类型即正义:TypeScript 从入门到精通系列: 《类型即正义:TypeScript 从入门到精通系列(序言)》 《类型即正义:TypeScript 从入门到精通系列(一)》 了解了基础的...TS 类型,接口之后,我们开始了解如何给更加复杂的结构注解类型,这就是我们这节里面要引出的函数,进而我们讲解如何对类型进行运算:交叉类型和联合类型,最后我们讲解了最原子类型:字面量类型,以及如何与联合类型搭配实现类型守卫效果...,然后通过 isCompleted 过滤,生成 小结 我们来总结和回顾一下这一小节学到的知识: 首先我们讲解了 TS 中的函数,主要讲解了如何注解函数 然后引出了函数赋值给变量时如何进行变量的函数类型注解...JS 中有元素运算一样如加减乘除甚至集合运算 “交并补”,TS 中也存在类型的一个运算,这就是我们这一节中要讲解的交叉和联合类型。...小结 这一小节中我们学习了交叉类型和联合类型,它们是 TS 类型系统中的类型运算的产物,交叉类型是多个类型组成一个类型,最终结果类型是多个类型的总和,而联合类型是多个类型组成一个综合体,最终的结果类型是多个类型之中的某一个类型

    2.7K20

    深入理解 TypeScript 中的类型提取语法与实际应用

    theme: channing-cyanhighlight: atom-one-dark在 TypeScript 中,类型系统提供了极大的灵活性和强大的表达能力。...例如:type MyNumber = number;在当前代码中,TExtractValuesOfTuple 是一个类型别名,描述了如何从元组类型中提取所有可能的值。...TExtractValuesOfTuple这个是我们定义的类型别名的名称。根据命名约定,这个名称暗示它的用途是从元组类型 T 中提取值。...它表示从类型 T 中取出所有 keyof T & number 对应的值。keyof Tkeyof T 表示获取类型 T 的所有键的联合类型。...;关键点总结T[keyof T & number] 的作用是从数组或元组类型中提取所有可能的值。keyof T 包括所有键,但通过交集 & number 限制为数字索引。

    12210

    TypeScript中的类型断言

    本文是关于 TypeScript 中的 type assertions 的,它与其他语言中的类型强制转换有相似之处,并通过 as 运算符执行。...在 B 行中,我们看到此类型不允许访问任何属性。 在 C 行中,我们用类型断言(运算符 as)告诉 TypeScript data 是一个Array。现在就可以访问属性 .length 了。...类型断言是不得已的方法,应尽可能的避免。他们(暂时)删除了静态类型系统为我们提供的安全网。 注意,在 A 行中,我们还覆盖了 TypeScript 的静态类型,不过是通过类型注释完成的。...类型断言的替代语法 TypeScript 对于类型断言有另一种“尖括号”语法: 1>data 该语法已经过时,并且与 React JSX 代码(在 .tsx 文件中)不兼容。...`) 如果值的类型是包含 undefined 或 null 类型的联合,则 non-nullish声明运算符(或 non-null 声明运算符)将从联合中删除这些类型。

    3.8K40

    TypeScript 中的数组类型定义

    在 TypeScript 中声明和初始化数组也很简单,和声明数字类型和字符串类型的变量也差不多,只不过在指定数组类型时要在类型后面加上一个中括号 [] 语法格式 const array_name: dataype...array: Array = ['孟浩然', 99]; 除了使用中括号 [] 的方法来声明数组,你还可以使用 数组泛型 来定义数组 语法格式 const array_name..., val2, val3],[v1, v2, v3]]; // 等同于 const array_name: datatype[][] = [[val1, val2, val3]]; 多维数组类型 TypeScript...等同于 const test: string[][] = [['狮子头', '清蒸鲈鱼', '鲜椒牛蛙'], ['北京烤鸭'], ['地锅鸡', '饿了']]; 声明一个二维数组 注意: 以下示例中类型在数组中的...个 建议: 在定义数组类型的时候使用数组泛型定义,这样显得更直观一点 Tuple 元组类型(元组类型允许表示一个已知元素数量和类型的数组)

    5.4K40

    实现TypeScript中的互斥类型

    : string }; never类型 在TypeScript中它有一个特殊的类型never,它是所有类型的子类型,无法再进行细分,也就意味着除了其本身没有类型可以再分配给它。...{}类型 amazing = [];// 报错:amazing是never类型不能分配给[]类型 剔除联合类型中的属性 有一组联合类型"a" | "b" | "c" | "d",我们想剔除属性b和c,在... // "a" | "d" 将对象中的所有属性转为联合类型 有一个对象它包含2个可选属性name、title,我们想把它转为联合类型name...接下来,我们来梳理下实现思路: 实现一个排除类型,用于从A对象类型中剔除B对象类型中的属性,并将排除后的属性类型设为never,得到一个新对象类型。...实现代码 接下来,我们来看下代码的实现,如下所示: // 定义排除类型:将U从T中剔除, keyof 会取出T与U的所有键, 限定P的取值范围为T中的所有键, 并将其类型设为never type Without

    3.1K40

    从两个角度看 Typescript 中的类型是什么?

    每个角度都从这三个问题来解释 以下三个问题对于理解类型是如何工作的非常重要,需要从这两个角度中的每一个角度来回答。 myVariable 的类型 MyType 意味着什么?...let source: SourceType = /*...*/; let target: TargetType = source; TypeUnion 是如何从Type1、 Type2和 Type3...类型 Type1、 Type2和 Type3的联合类型是定义它们的集合在集合论中的并集。 3. 角度 2:类型兼容关系 从这个角度来看,我们不关心值以及它们在执行代码时如何流动。...是互相兼容的,那么SourceType可以分配给 TargetType 联合类型的工作方式是通过类型关系成员定义的。...具有结构类型的语言有 ocaml/reasonml、 Haskell 和 TypeScript 下面的代码在标准类型系统中产生类型错误(第 A 行) ,但在 Typescript 的结构类型系统中是合法的

    1.5K20

    从两个角度理解 TypeScript 中的类型是什么

    翻译:疯狂的技术宅 作者:Dr. Axel Rauschmayer 来源:2ality.com 正文共:1537 字 预计阅读时间:7 分钟 ? TypeScript中的类型是什么?...let source: SourceType = /*...*/; let target: TargetType = source; TypeUnion 是如何从 Type1,Type2 和 Type3...类型 Type1、Type2 和 Type3 的类型联合是定义它们集合的集合理论 union。 观点2:类型兼容性关系 从这个角度来看,我们不关心值本身以及在执行代码时它们是如何流动的。...在支持 TypeScript 的编辑器中,如果将光标悬停在 location 上方,则可以看到该 location 的静态类型。...手册中的“类型兼容性”一章:https://www.typescriptlang.org/docs/handbook/type-compatibility.html TypeScript 规范中的 “

    1.5K00

    如何利用 TypeScript 的判别联合类型提升错误处理与代码安全性

    而即使我认为可以访问某个属性,也希望在生产环境中确保这个假设不会给我带来麻烦。 让我们通过这篇文章,深入了解如何从判别联合类型中提取类型,进一步提升我们的编码效率和代码可靠性。 什么是判别联合类型?...TypeScript中的魔法衣橱整理术 在TypeScript中,判别联合类型(Discriminated Unions)使用一个共同的属性,称为判别属性(discriminant),来区分联合类型中的不同类型...例如,如果你从Clothing联合类型中访问一个项目,TypeScript会知道如果type是'top',那么这个项目还会有sleeveLength属性;如果type是'bottom',它将有length...通过这种方式,判别联合类型不仅让代码更加简洁明了,也让你在处理复杂类型时更加得心应手。 基础示例:消息应用程序中的判别联合类型 好吧,现在我们来点正经的。我们想要构建解决方案,而不仅仅是整理衣柜。...所以,我认为可以用这个例子来展示判别联合类型在实际场景中的实用性。

    20010

    如何从内存提取LastPass中的账号密码

    简介 首先必须要说,这并不是LastPass的exp或者漏洞,这仅仅是通过取证方法提取仍旧保留在内存中数据的方法。...之前我阅读《内存取证的艺术》(The Art of Memory Forensics)时,其中有一章节就有讨论从浏览器提取密码的方法。...本文描述如何找到这些post请求并提取信息,当然如果你捕获到浏览器登录,这些方法就很实用。但是事与愿违,捕获到这类会话的概率很低。在我阅读这本书的时候,我看了看我的浏览器。...方法 一开始还是挺简单的,从寻找限制开始就变得很复杂了。...这些信息依旧在内存中,当然如果你知道其中的值,相对来说要比无头苍蝇乱撞要科学一点点。此时此刻,我有足够的数据可以开始通过使用Volatility插件从内存映像中自动化提取这些凭证。

    5.7K80

    TypeScript 联合类型的定义、使用场景和注意事项

    在 TypeScript 中,联合类型(Union Types)是一种用于表示变量或参数可以具有多种类型的概念。它允许我们将多个类型中的一个或多个类型作为一个整体来使用。...本文将详细介绍 TypeScript 联合类型的定义、使用场景和注意事项,并提供一些示例来帮助理解。定义联合类型在 TypeScript 中,可以使用 | 符号将多个类型组合成一个联合类型。...交叉类型与联合类型的结合在 TypeScript 中,还可以使用交叉类型(Intersection Types)和联合类型结合使用,从而实现更复杂的类型定义。...总结本文详细介绍了 TypeScript 联合类型的定义、使用场景和注意事项,并提供了一些示例帮助理解。我们学习了如何使用类型断言和类型保护来处理联合类型的变量,以及如何结合交叉类型使用联合类型。...通过灵活使用联合类型,我们可以处理多种类型的变量,提高代码的可读性和可维护性。在实际开发中,根据具体的需求选择合适的联合类型,有助于编写出更健壮和可靠的 TypeScript 代码。

    1K41

    TypeScript 中的顶级类型:any 和 unknown

    翻译:疯狂的技术宅 作者:Dr. Axel Rauschmayer 正文共:2525 字 预计阅读时间:10 分钟 ? 在 TypeScript中,any 和 unknown 是包含所有值的类型。...在本文中,我们将会研究它们是怎样工作的。 ---- TypeScript 的两种顶级类型 any 和 unknown 在 TypeScript 中是所谓的“顶部类型”。...const b: boolean = value; const c: object = value; } 使用 any,我们将会失去通常由 TypeScript 的静态类型系统所给予的所有保护...示例:JSON.parse( ) JSON.parse() 的结果取决于动态输入,这就是其返回类型为 any 的原因(我从函数签名中省略了参数 reviver): JSON.parse(text: string...): any; 在 unknown 类型出现之前,JSON.parse() 就已经被添加到了 TypeScript中。

    2.5K20
    领券