本文翻译参考自 参考链接

绝大多数情况下,interface 和 type 表现是一样的,只有一下三个场景下是有细微差异的:

1. 不能在class上使用implements去实现一个使用了union联合类型定义的type0_pLMBLSbJFAwbvUzP.gif

2. 不能在class上使用extends去继承一个使用了union联合类型定义的type

0_6PqsTF77E9hCLZ4Q.gif

3. type定义相同的名字不会发生声明合并, 而是取的第一个

interface定义同样的name时,会发生合并

0_KaOLApvjRtJNeTZe.png

interface定义同样的name时,不会发生合并

0_1_bOVV1QQebdP-x6.gif