返回

TS类型新增,体会类型灵活应用之妙处!

前端

TS 相较于 JavaScript 而言,新增了许多类型,极大地增强了其灵活度和扩展性。我们一起来看看 TypeScript 所特有的类型吧!

声明

TS 中的声明用于变量的类型,它可以帮助我们更好地组织代码并减少错误。常用的声明类型包括:

  • 类型别名: 用于给类型起一个新的名字,便于代码阅读和理解。
type NumOrStr = number | string;
let id: NumOrStr = 'abc';
  • 接口: 用于对象的形状,它定义了对象的属性及其类型。
interface Person {
  name: string;
  age: number;
}
let person: Person = {
  name: 'John Doe',
  age: 30
};
  • 类: 用于创建可重用的对象模板,它定义了对象的属性、方法和构造函数。
class Person {
  name: string;
  age: number;

  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }

  greet() {
    console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
  }
}

let person = new Person('John Doe', 30);
person.greet();

泛型

泛型允许我们定义可重用的类型,它们可以与任何类型一起使用。最常见的泛型类型包括:

  • 数组: 用于存储一组元素,元素可以是任何类型。
let arr: Array<number> = [1, 2, 3];
  • 元组: 用于存储一组固定数量的元素,元素可以是不同类型。
let tuple: [string, number] = ['John Doe', 30];
  • 函数: 用于定义可重用代码块,它们可以接受任何类型作为参数并返回任何类型。
function sum<T>(a: T, b: T): T {
  return a + b;
}
console.log(sum(1, 2)); // 3
console.log(sum('a', 'b')); // 'ab'

枚举

枚举用于定义一组常量,它们可以是字符串或数字。枚举类型包括:

  • 数字枚举: 用于定义一组数字常量。
enum Direction {
  Up = 1,
  Down = 2,
  Left = 3,
  Right = 4
}
console.log(Direction.Up); // 1
  • 字符串枚举: 用于定义一组字符串常量。
enum Color {
  Red = 'red',
  Green = 'green',
  Blue = 'blue'
}
console.log(Color.Red); // 'red'

元组

元组类型用于存储一组固定数量的元素,元素可以是不同类型。元组类型包括:

  • 元组: 用于存储一组固定数量的元素,元素可以是不同类型。
let tuple: [string, number] = ['John Doe', 30];
console.log(tuple[0]); // 'John Doe'
console.log(tuple[1]); // 30

这些只是 TypeScript 中新增的一些类型,它们极大地增强了 TypeScript 的灵活度和扩展性。掌握这些类型可以帮助您编写出更健壮、更可维护的代码。