- interface可以重复声明,type不行;
- interface使用extends来实现继承,type使用交叉类型方式;
建议使用interface来向外暴露接口,使用type将一组类型重新命名。
interface Animal { name: string; } // interface可以多次声明 interface Animal { age: number; } // type不能重复定义 type Person = { name: string; } // 使用extends继承 interface Bird extends Animal { fly: () => void } // 使用交叉类型方式继承 type Man = Person & {age: number};