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

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

TypeScript 是一种由微软开发的静态类型编程语言,它是 JavaScript 的超集,并且可以在编译时进行类型检查。TypeScript 强大的类型系统使得开发者能够更轻松地编写可维护、可扩展的代码。本文将详细介绍 TypeScript 中的基础类型,包括原始类型、对象类型、数组类型、元组类型、枚举类型和联合类型。

原始类型

在 TypeScript 中,有以下几种原始类型:

数字类型

数字类型用于表示整数或浮点数。可以使用 number 关键字来声明数字变量。

例如:

let num: number = 123;

字符串类型

字符串类型用于表示文本数据。可以使用 string 关键字来声明字符串变量。

例如:

let str: string = "Hello";

布尔类型

布尔类型用于表示逻辑值,即 truefalse。可以使用 boolean 关键字来声明布尔变量。

例如:

let isTrue: boolean = true;

空值和未定义类型

空值类型 (void) 用于表示没有返回值的函数。未定义类型 (undefined) 用于表示未赋值的变量。可以使用 voidundefined 关键字来声明对应的变量。

例如:

let result: void = undefined;  // 空值类型
let undef: undefined = undefined;  // 未定义类型

空值和无类型类型

空值类型 (void) 用于表示没有返回值的函数。 null 类型用于表示空值或者对象引用为空。可以使用 voidnull 关键字来声明对应的变量。

例如:

let nothing: null = null;  // 空值类型
let nul: null = null;  // 空值类型

对象类型

对象类型用于表示非原始数据类型,包括对象、数组、函数等。可以使用 object 关键字来声明对象类型。

对象类型

对象类型用于表示一个对象,其中包含多个键值对。可以使用 {} 或者 object 关键字来声明对象类型。对象类型可以指定属性名和属性值的类型。

例如:

let person: {
    name: string; age: number } = {
   
  name: "John",
  age: 25,
};

数组类型

数组类型用于表示一个由相同类型的元素组成的有序集合。可以使用 类型[] 或者 Array<类型> 的语法来声明数组类型。

例如:

let numbers: number[] = [1, 2, 3, 4, 5]; // 数字数组
let names: string[] = ["Alice", "Bob", "Charlie"]; // 字符串数组

元组类型

元组类型用于表示一个固定长度和类型的数组。可以使用 [类型1, 类型2, ...] 的语法来声明元组类型。

例如:

let user: [string, number] = ["John", 25]; // 元组类型

函数类型

函数类型用于表示一个函数。可以使用 (参数类型) => 返回值类型 的语法来声明函数类型。

例如:

let add: (x: number, y: number) => number = function (x: number, y: number): number {
   
  return x + y;
};

枚举类型

枚举类型用于表示一组有名字的常量。可以使用 enum 关键字来声明枚举类型。

例如:

enum Color {
   
  Red,
  Green,
  Blue,
}

let color: Color = Color.Green;

在枚举类型中,每个枚举成员都有一个与它关联的数字值,默认从 0 开始。也可以手动指定枚举成员的数值。

联合类型

联合类型用于表示一个变量可以是多种类型之一。可以使用 类型1 | 类型2 | ... 的语法来声明联合类型。

例如:

let value: string | number = "Hello"; // 联合类型
value = 123; // 合法

联合类型可以提供更大的灵活性,使得我们能够处理多种不同类型的值。

类型推断和类型断言

TypeScript 具有强大的类型推断能力,它可以根据上下文自动推断变量的类型。例如,如果我们在定义变量时直接赋值,TypeScript 可以推断出变量的类型。

let num = 123; // 类型推断为 number
let str = "Hello"; // 类型推断为 string

此外,我们还可以使用类型断言来告诉编译器某个值的类型。类型断言有两种语法形式,<类型>值值 as 类型

let someValue: unknown = "Hello";
let strLength1: number = (<string>someValue).length;
let strLength2: number = (someValue as string).length;

类型断言可以在一些无法通过类型推断的情况下提供类型信息,但要注意谨慎使用,以避免出现类型错误。

总结

本文详细介绍了 TypeScript 的基础类型,包括原始类型、对象类型、数组类型、元组类型、枚举类型和联合类型等方面。TypeScript 强大的类型系统使得开发者能够在编译时进行类型检查,减少了在运行时出现类型错误的概率。

目录
相关文章
|
17天前
|
JavaScript
typeScript进阶(9)_type类型别名
本文介绍了TypeScript中类型别名的概念和用法。类型别名使用`type`关键字定义,可以为现有类型起一个新的名字,使代码更加清晰易懂。文章通过具体示例展示了如何定义类型别名以及如何在函数中使用类型别名。
34 1
typeScript进阶(9)_type类型别名
|
17天前
|
存储 JavaScript
typeScript进阶(11)_元组类型
本文介绍了TypeScript中的元组(Tuple)类型,它是一种特殊的数组类型,可以存储不同类型的元素。文章通过示例展示了如何声明元组类型以及如何给元组赋值。元组类型在定义时需要指定数组中每一项的类型,且在赋值时必须满足这些类型约束。此外,还探讨了如何给元组类型添加额外的元素,这些元素必须符合元组类型中定义的类型联合。
30 0
|
17天前
|
JavaScript
typeScript进阶(10)_字符串字面量类型
本文介绍了TypeScript中的字符串字面量类型,这种类型用来限制变量只能是某些特定的字符串字面量。通过使用`type`关键字声明,可以确保变量的值限定在预定义的字符串字面量集合中。文章通过示例代码展示了如何声明和使用字符串字面量类型,并说明了它在函数默认参数中的应用。
28 0
|
1天前
|
JavaScript 前端开发 安全
使用 TypeScript 加强 React 组件的类型安全
【10月更文挑战第1天】使用 TypeScript 加强 React 组件的类型安全
9 3
|
17天前
|
JavaScript 前端开发
typeScript基础(8)_ts类型断言
本文介绍了TypeScript中的类型断言,它用于在编译时告诉TypeScript某个对象具有特定的类型,即使它看起来不具备。类型断言可以用来访问一个类型上存在而另一个类型上不存在的属性或方法。需要注意的是,类型断言并不会在运行时改变JavaScript的行为,因此如果断言不当,运行时仍然可能出错。文章还提醒避免将类型断言为`any`类型或进行多重断言。
18 1
|
15天前
|
JavaScript 前端开发 编译器
TypeScript,从0到入门带你进入类型的世界
该文章提供了TypeScript的入门指南,从安装配置到基础语法,再到高级特性如泛型、接口等的使用,帮助初学者快速掌握TypeScript的基本用法。
|
17天前
|
JavaScript
typeScript进阶(12)_枚举类型
TypeScript中的枚举类型(Enum)允许值限定在一定范围内,枚举成员默认从0开始递增,也支持手动赋值及反向映射。枚举可以用于定义常量,提高代码可读性和维护性。枚举项可以是整数、浮点数或字符串,未手动赋值的项将按顺序递增。
29 0
|
17天前
|
JavaScript
typeScript基础(2)_any任意值类型和类型推论
本文介绍了TypeScript中的`any`任意值类型,它可以赋值为其他任何类型。同时,文章还解释了TypeScript中的类型推论机制,即在没有明确指定类型时,TypeScript如何根据变量的初始赋值来推断其类型。如果变量初始化时未指定类型,将被推断为`any`类型,从而允许赋予任何类型的值。
36 4
|
17天前
|
JavaScript
typeScript基础(5)_对象的类型-interfaces接口
本文介绍了TypeScript中接口(interfaces)的基本概念和用法,包括如何定义接口、接口的简单使用、自定义属性、以及如何使用`readonly`关键字定义只读属性。接口在TypeScript中是定义对象形状的重要方式,可以规定对象的必有属性、可选属性、自定义属性和只读属性。
30 1
|
3月前
|
前端开发 JavaScript 安全
TypeScript在React Hooks中的应用:提升React开发的类型安全与可维护性
【7月更文挑战第17天】TypeScript在React Hooks中的应用极大地提升了React应用的类型安全性和可维护性。通过为状态、依赖项和自定义Hooks指定明确的类型,开发者可以编写更加健壮、易于理解和维护的代码。随着React和TypeScript的不断发展,结合两者的优势将成为构建现代Web应用的标准做法。