type和interface

来源:2-2 安装使用&基础概念-安装使用

瓶盖子

2023-11-17

老师,type和interface都能声明类型,在开发中应该怎么选择?

写回答

1回答

秋得法

2023-11-17

1. **适用场景**:- `type` 主要用于定义具体类型、联合类型、交叉类型和别名。它可以用来创建新的类型,包括基本类型、联合类型、交叉类型、函数类型等。- `interface` 主要用于定义对象类型,它能够描述对象的形状和结构,并支持扩展和继承。

2. **扩展性**:- `interface` 可以被扩展和合并,允许在已有接口的基础上添加新属性。这使得在需要不断扩展对象的结构时更为方便。- `type` 不能直接被扩展,但是可以使用交叉类型来组合现有类型。

3. **可读性**:- 在某些情况下,`interface` 可能会更易读,特别是当你想要描述一个对象的结构和属性时。它提供了更直观的方式来定义对象类型。- `type` 则更适合于创建复杂的联合类型或较复杂的类型别名。它可以帮助提高代码的可读性,将复杂类型定义成具有描述性的别名。

4. **项目约定和团队使用习惯**:在团队中,有时会有关于在什么情况下使用`type`,在什么情况下使用`interface`的约定。遵循项目内部的规范和团队约定是很重要的。在实际开发中,`type` 和 `interface` 并不是互斥的,它们可以互相补充使用。例如,在描述对象的结构时,可以使用`interface`,而在定义复杂类型或联合类型时,则可以选择使用`type`。最佳实践是根据具体需求和代码的可读性来选择合适的声明方式,以及根据团队的使用习惯来保持一致性。


0
1
one_pieces
同学总结得很详细,简单来说,它们两者都可以描述对象结构,但 type 还可以用作别名和两个及以上的现有类型的组合,比如 type ID = string,type ID = number | string
2023-11-19
共1条回复

Vue3+Pinia+Vite+TS 还原高性能外卖APP项目

Vue3+Pinia+Vite+TS 还原高性能外卖APP项目

392 学习 · 251 问题

查看课程