type和interface
先说结论:平时开发:使用 type 作为首选;发布工具库时:使用 interface,它允许声明合并和类型扩展,这对于用户使用库在做扩展修改接口时是一个很有用的特性。
interface 注重 结构化类型定义,强调描述对象本身的形状。 type 可为任何类型(包括原始类型、联合类型、元组等)和动态生成属性操作符 keyof、in、infer等,用途更广泛。
继承
interface 通过 extends 关键字实现继承
type 通过交叉类型 & 实现继承
重写
interface 当interface重写时,如果有不同的属性,则会添加;如果是相同的属性但是类型不同,则会报错。 type 不支持
开发体验
如图所示,我鼠标悬浮后,并不知道里面是什么东西
只能获取结果时调出代码提示,或者ctrl + 鼠标左键进入,查看类型定义。

那么我用type呢?可以看到,现在鼠标悬浮能直接查看类型定义了
这一点是让我最受不了的,所以直接选择type即可
