- 介绍
- TypeScript 简介
- TypeScript 入门
- 探索类型系统
- 原始类型
- 类型注释
- 可选属性
- 只读属性
- 索引签名
- 扩展类型
- 字面量类型
- 字面量推断
- 严格空检查
- 枚举
- 缩小范围
- 赋值
- 控制流分析
- 类型谓词
- 可区分联合
- never 类型
- 详尽性检查
- 对象类型
- 元组类型(匿名)
- 命名元组类型(已标记)
- 固定长度元组
- 联合类型
- 交集类型
- 类型索引
- 值的类型
- Func 返回值的类型
- 模块的类型
- 映射类型
- 映射类型修饰符
- 条件类型
- 分配条件类型
- infer 条件类型中的类型推断
- 预定义条件类型
- 模板联合类型
- 任意类型
- 未知类型
- 空类型
- Never 类型
- 接口及类型
- 内置原始数据类型
- 常见的内置 JS 对象
- 重载
- 合并与扩展
- 类型和接口之间的差异
- Class
- 泛型
- 擦除的结构类型
- 命名空间
- Symbols
- 三斜杠指令
- 类型操作
- 其他
原始类型
TypeScript 支持 7 种基本类型。原始数据类型是指不是对象并且没有任何与其关联的方法的类型。在 TypeScript 中,所有原始类型都是不可变的,这意味着它们的值一旦分配就无法更改。
string
原始 string
类型存储文本数据,并且值始终是双引号或单引号的。
const x: string = 'x'; const y: string = 'y';
如果字符串被反引号 (`) 字符包围,则字符串可以跨越多行:
let sentence: string = `xxx, yyy`;
boolean
TypeScript 中的数据 boolean
类型存储二进制值,或者 true 或 false。
const isReady: boolean = true;
number
TypeScript 中的数据类型 number
用 64 位浮点值表示。类型 number
可以表示整数和分数。TypeScript 还支持十六进制、二进制和八进制,例如:
const decimal: number = 10; const hexadecimal: number = 0xa00d; // 十六进制数以 0x 开始 const binary: number = 0b1010; // 二进制数以 0b 开始 const octal: number = 0o633; // 八进制数以 0o 开始
bigInt
bigInt
表示无法用 number
表示的非常大的数值 (253 – 1)。
bigInt
可以通过调用内置函数 BigInt()
或添加 n
到任何整数数字字面量的末尾来创建:
const x: bigint = BigInt(9007199254740991); const y: bigint = 9007199254740991n;
笔记:
bigInt
值不能与number
混合,也不能与内置的Math
一起使用,它们必须强制为相同的类型。- 仅当目标配置为 ES2020 或更高版本时,“bigInt”值才可用。
symbol
JavaScript 有一个原始函数 Symbol(),它创建一个全局唯一的引用。
let sym = Symbol('x'); // symbol 类型
null and undefined
null
和 undefined
类型都表示没有值或不存在任何值。
undefined
类型意味着该值未分配或初始化,或者指示无意中缺少值。
null
类型意味着我们知道该字段没有值,因此值不可用,这表明故意不存在值。
Array
array
是一种可以存储多个相同类型或不同类型的值的数据类型。可以使用以下语法定义它:
const x: string[] = ['a', 'b']; const y: Array<string> = ['a', 'b']; const j: Array<string | number> = ['a', 1, 'b', 2];
TypeScript 使用以下语法支持只读数组:
const x: readonly string[] = ['a', 'b']; // 只读修饰符 const y: ReadonlyArray<string> = ['a', 'b']; const j: ReadonlyArray<string | number> = ['a', 1, 'b', 2]; j.push('x'); // 有效
TypeScript 支持数组和只读数组:
const x: [string, number] = ['a', 1]; const y: readonly [string, number] = ['a', 1];
any
数据 any
类型字面上代表"任何"值,当 TypeScript 无法推断类型或未指定时,它是默认值。
使用 any
时,TypeScript 编译器会跳过类型检查,因此 any
使用时不存在类型安全。通常,当发生错误时不要使用 any
静默编译器,而是专注于修复错误,因为使用 any
它可能会破坏契约,并且我们会失去 TypeScript 自动完成的好处。
在从 JavaScript 逐步迁移到 TypeScript 的过程中,该 any
类型可能很有用,因为它可以让编译器保持沉默。
对于新项目,请使用 TypeScript 配置 noImplicitAny
,该配置使 TypeScript 能够在 any 使用或推断时发出错误。
any
通常是错误的来源,它可以掩盖类型的实际问题。尽可能避免使用它。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论