1. interface可以继承而type不行
interface IBaseItems<T> {
ids: T[];
}
interface ISearchItems extends IBaseItems<number> {
type: RecentSearchTypes;
hasMore: boolean;
}
interface IRecentItems extends IBaseItems<number | string> {
types: RecentSearchTypes[];
}
2. interface可自动merge,type则不能
interface A {
name: string;
}
interface A {
age: number;
}
type B = {
name: string;
}
type B = {
age: number;
}
3. interface 只能给对象指定类型,type 不仅可以给对象定义,还可以给任意类型定义

interface Person {
name: string;
age: number;
sayHi(): void;
}
interface NumStr = number |string ;
type PersonType = {
name: string;
age: number;
sayHi(): void;
};
type NumStrType = number |string ;