typescript类接口与类型有哪些

类接口和类型是 typescript 中定义类结构和行为的两种机制。类接口用于定义类的公共 api,而类型用于定义类的完整结构,包括私有实现细节。主要区别在于访问性(接口仅公开类成员,而类型公开全部成员)、继承(接口支持多重继承,而类型仅支持单一继承)和实例化(接口不能直接实例化,而类型可以)。根据需求,类接口适用于定义类的公共面向,而类型适用于定义类的完整结构和行为。

typescript类接口与类型有哪些

TypeScript 类接口与类型

TypeScript 提供了类接口和类型两种机制来定义类的形状和行为。虽然它们有相似之处,但它们在目的和使用方式上存在关键差异。

类接口

目的:定义类的公共 API,包括其属性、方法和事件。

语法:

interface InterfaceName {
  // 属性
  property1: type1;
  property2: type2;
  // 方法
  method1(arg1: type3, arg2: type4): returnType;
  method2(): void;
  // 事件
  event1: string;
}

类型

目的:定义类的完整结构,包括其私有实现细节。

语法:

type TypeName = {
  // 属性
  property1: type1;
  property2: type2;
  // 方法
  method1(arg1: type3, arg2: type4): returnType;
  method2(): void;
}

主要差异

特征 类接口 类型
目的 定义公共 API 定义完整结构
可访问性 只公开类成员 公开类成员和私有成员
继承 可以从多个接口继承 只能从一个类型继承
实例化 不能直接实例化 可以直接实例化
用法 用作类的约束 用作对类的完全定义

用法示例

类接口:

interface Person {
  name: string;
  age: number;

  greet(): void;
}

class Employee implements Person {
  // ...
}

类型:

type PersonType = {
  name: string;
  age: number;

  private _privateProperty: number;

  greet(): void;
}

const person: PersonType = {
  name: "John Doe",
  age: 30,

  greet() {
    // ...
  }
}

结论

类接口和类型是 TypeScript 中定义类的重要工具。选择哪种机制取决于具体需求:

  • 类接口适合定义类的公共面向,而类型适合定义类的完整结构和行为。

以上就是typescript类接口与类型有哪些的详细内容,更多请关注其它相关文章!