返回

释放 TS 进阶技能:揭秘变量与类型的灵活用法

前端

变量与类型概述

变量是用来存储数据的容器,而类型则是用来变量中存储数据的类型。在 TypeScript 中,变量的类型可以是基本类型(如 number、string、boolean)或引用类型(如 object、array)。变量声明时,需要指定其类型,这有助于 TypeScript 编译器对代码进行类型检查,提高代码的可靠性。

变量声明

变量的声明可以有两种方式:

  1. 显式声明 :使用 let 或 const ,如:
let name: string = "John";
const age: number = 20;
  1. 隐式声明 :使用 var 关键字,或者不指定类型,如:
var age = 20; // 隐式声明为 number 类型

需要注意的是,var 关键字已经不再推荐使用,因为 var 声明的变量具有变量提升(hoisting)特性,这可能会导致难以理解的代码。

类型别名

类型别名允许你创建新的类型,并将其赋给现有的类型。这在需要重复使用某些类型时非常有用。例如,你可以创建一个名为 FullName 的类型别名,代表一个人的全名:

type FullName = string;

let fullName: FullName = "John Doe";

枚举

枚举是一种用来表示一组常量的类型。枚举中的每个常量都具有一个唯一的名称和值。例如,你可以创建一个名为 Gender 的枚举,代表一个人的性别:

enum Gender {
  Male,
  Female,
  Other
}

let gender: Gender = Gender.Male;

泛型

泛型允许你创建可重用的组件,而无需为每种数据类型都创建一个单独的组件。泛型使用尖括号 (<>) 表示,尖括号中可以指定类型参数。例如,你可以创建一个名为 ArrayHelper 的泛型类,用于操作各种类型的数组:

class ArrayHelper<T> {
  constructor(private array: T[]) {}

  public find(item: T): number {
    return this.array.indexOf(item);
  }
}

let helper = new ArrayHelper([1, 2, 3]);
helper.find(2); // 返回 1

接口

接口是一种用来定义对象形状的类型。接口中可以包含属性、方法和其他成员。例如,你可以创建一个名为 Person 的接口,代表一个人的基本信息:

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

let person: Person = {
  name: "John Doe",
  age: 20,
  gender: Gender.Male
};

总结

变量、类型、类型别名、枚举、泛型和接口是 TypeScript 中常用的类型系统特性。熟练掌握这些特性,可以让你编写出更加健壮、可维护的代码。通过本文的讲解,希望你能更进一步了解 TypeScript 中的变量与类型,并将其应用到你的实际项目中。