首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Typescript 类型与接口

Typescript 类型与接口

原创
作者头像
zayyo
发布2023-11-29 21:00:36
发布2023-11-29 21:00:36
4220
举报
文章被收录于专栏:zayyo前端zayyo前端

在TypeScript中,type和interface都用于定义对象或类型的形状。它们在功能上看起来相似,但在使用方式和扩展方面有一些区别。

Interfaces(接口):

接口用于定义对象的结构或形状。它们可以描述其他类或对象必须遵循的契约。接口还可以被扩展或合并。

代码语言:typescript
复制
// 接口示例

interface Person {

  name: string;

  age: number;

}



// 实现接口

const person: Person = {

  name: 'Alice',

  age: 30,

};

Types(类型):

类型用于在TypeScript中创建不同类型的别名。它们允许您为任何有效类型创建名称,包括内置类型、联合类型、交叉类型等。类型是灵活的,并且可以使用交叉类型、联合类型和条件类型来表示复杂类型。

代码语言:typescript
复制
// 类型示例

type Point = {

  x: number;

  y: number;

};



// 使用类型别名

const point: Point = {

  x: 10,

  y: 20,

};

区别:

扩展/合并:
  • 接口支持声明合并。如果您使用相同名称声明了两个接口,TypeScript会将它们合并为一个。
  • 类型可以通过交叉(&)或联合(|)的组合使用,但不能像接口那样进行扩展或合并。
语法:
  • 接口使用interface关键字。
  • 类型使用type关键字。
声明:
  • 接口更适合定义对象形状、契约或实现它们的类。
  • 类型更加灵活,不仅可以定义对象形状,还可以定义联合类型、交叉类型、条件类型等。

何时使用哪个:

**使用接口(interface):**

  • 定义对象、类或其形状的契约。
  • 需要声明合并或扩展现有类型/契约。

**使用类型(type):**

  • 创建联合类型、交叉类型或其他复杂类型。
  • 为原始类型、联合类型、交叉类型或复杂类型定义别名,以提高代码可读性。

在许多情况下,接口和类型都可以完成相同的任务,选择使用哪一个通常取决于个人偏好或代码库中的特定需求。没有严格的规则规定何时使用其中之一。

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Interfaces(接口):
  • Types(类型):
  • 区别:
    • 扩展/合并:
    • 语法:
    • 声明:
  • 何时使用哪个:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档