Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

类型别名type和接口interface区别? #139

Open
GGXXMM opened this issue Apr 15, 2023 · 0 comments
Open

类型别名type和接口interface区别? #139

GGXXMM opened this issue Apr 15, 2023 · 0 comments

Comments

@GGXXMM
Copy link
Owner

GGXXMM commented Apr 15, 2023

一、相同点

  • 都可以描述”对象“或”函数“
  • 都支持扩展。类型别名 type 通过 & 扩展;而接口 interface 通过 extends 来扩展。

二、不同点(区别)

type interface
声明类型 可以声明基本类型、联合类型、元组类型、对象类型 可以声明对象类型(Object、Function、Array、Class )
多个相同声明 不允许出现相同的类型别名,会出现Error 同名interface接口会自动合并
是否可搭配typeof 可以 -

使用 type 描述”类型关系“,使用 interface 描述”数据结构“。

三、使用场景

type类型别名的使用场景

  • 定义基本类型的别名时
  • 定义元组类型时
  • 定义函数类型时
  • 定义联合类型时
  • 定义映射类型时

interface接口的使用场景

  • 需要利用接口自动合并特性的时
  • 定义对象类型且无需使用 type 的时
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant