TypeScript - 类型

原创
admin 4个月前 (08-10) 阅读数 30 #Typescript

TypeScript - 类型

类型系统代表了语言支持的不同值类型。类型系统会在值被程序存储或操作之前检查其有效性,确保代码按预期运行。类型系统还提供了更丰富的代码提示和自动化文档功能。

TypeScript作为其可选类型系统的一部分提供了数据类型。数据类型分类如下:

Any类型

any数据类型是TypeScript中所有类型的超类型,它表示动态类型。使用any类型相当于为变量选择退出类型检查。

内置类型

下表展示了TypeScript中的所有内置类型:

数据类型 关键字 描述
Number number 双精度64位浮点值,可用于表示整数和小数。
String string 表示Unicode字符序列
Boolean boolean 表示逻辑值true和false
Void void 用于函数返回类型,表示不返回值的函数
Null null 表示对象值的故意缺失
Undefined undefined 表示赋给所有未初始化变量的值
Symbol symbol ES2015中引入的唯一且不可变的原始类型
Object object 表示用户定义的类、数组、函数等的实例
Never never 表示永不出现的值
TypeScript和JavaScript中没有整数类型。

现在,让我们详细了解每个内置数据类型。

Number

在TypeScript中,number数据类型可以存储整数、浮点数、二进制数、十进制数、十六进制数等。但是,所有整数在TypeScript中都表示为浮点数。

示例

在下面的代码中,agemarks变量都是number类型。age变量包含整数值,marks变量包含浮点数值。

// 整数
let age: number = 30;
// 浮点数
let marks: number = 30.5;

String

string数据类型用于存储文本值。

您可以通过三种方式定义字符串:

  • 使用单引号
  • 使用双引号
  • 使用反引号

反引号用于创建多行字符串或模板字符串。

示例

在下面的代码中,first_name字符串使用单引号创建,last_name字符串使用双引号创建。full_name字符串使用反引号创建,它使用模板字面量创建字符串。

let first_name: string = 'John';
let last_name: string = "Doe";
let full_name: string = `${first_name} ${last_name}`;

Boolean

在TypeScript中,Boolean数据类型允许您表示逻辑实体。它存储truefalse值。布尔变量主要用于if-else或switch等条件语句中,根据某个逻辑值执行流程。

示例

在下面的代码中,isReady是boolean类型的变量,包含true值。

let isReady: boolean = true;

Symbol

symbol是一种原始数据类型,主要用于创建唯一值。它允许开发者创建不会与其他键冲突的唯一对象键。

示例

这里,我们使用了Symbol()构造函数,它返回新的唯一键。我们使用UNIQUE_KEY作为obj对象的键。

// 定义一个symbol
const UNIQUE_KEY = Symbol(); 
// 使用symbol作为对象中的属性键
let obj = {
[UNIQUE_KEY]: "SecretValue"
};

Null

TypeScript中的null类型表示任何对象值的故意缺失。它是原始类型之一,通常用于指示变量故意指向无对象。

示例

在下面的代码中,empty变量包含null值。

let empty: null = null;

Undefined

undefined数据类型表示值的缺失。当一个变量被声明但未初始化时,它包含undefined值。

示例

在下面的代码中,undef变量包含undefined值。

let undef: undefined;

Null和undefined - 它们相同吗?

nullundefined数据类型常常令人困惑。null和undefined不能用作变量的数据类型引用。它们只能作为值赋给变量。

然而,null和undefined并不相同。用undefined初始化的变量意味着该变量没有赋值或对象,而null意味着该变量已被设置为一个值为undefined的对象。

Object

object是非原始数据类型,可以包含不是数字、字符串、布尔值、symbol、null或undefined的任何值。您可以使用对象字面量或Object()构造函数创建对象。

示例

在下面的代码中,我们使用对象字面量创建了对象。person变量的类型是object。我们在花括号(对象字面量)之间添加了键值对。

let person: object = {name: "Bob"};

Void

void类型用于不返回值的函数的返回类型。它表示完全没有类型。

示例

这里,我们在函数中使用了void数据类型,不从函数返回任何值。

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

用户定义类型

用户定义类型包括枚举(enums)、类、接口、数组和元组。这些将在后面的章节中详细讨论。

Array

数组数据类型是相同元素的集合。它存储元素,您可以使用从0开始的数组索引访问或更新这些元素。

任何数据类型的数组都可以定义为data_type[]Array<data_type>,其中<data_type>可以是任何原始或非原始数据类型。

示例

在下面的代码中,我们定义了一个包含3个元素的数字数组。1的索引是0,2的索引是1,3的索引是2。

let numbers: number[] = [1, 2, 3];

Tuple

元组类型允许您表达一个具有固定数量元素的数组,这些元素的类型已知但不一定相同。这在处理需要具有特定结构的数组时增加了一层安全性。

示例

在下面的代码中,tuple变量可以有一个长度为2的数组作为值。元组的第一个元素是string类型,第二个元素是number类型。

let tuple: [string, number] = ["hello", 10];
console.log(tuple); // 输出: ["hello", 10]

Enum

枚举是一组相关值的集合,可以是数字值或字符串值。enum使得以更可读的方式处理相关常量集合变得容易。

示例

在下面的代码中,Color枚举包含不同的颜色。我们可以使用枚举名称Color后跟点和颜色名称值来访问颜色。

enum Color {Red, Green, Blue}
let c: Color = Color.Green;
console.log(c); // 输出: 1
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权本站发表,未经许可,不得转载。

作者文章
热门
最新文章
标签列表