TS之interface与type区别
# 相同之处
# 都可以描述一个对象或者函数
interface
interface User {
name: string
age: number
}
interface SetUser {
(name: string, age: number): void;
}
@前端进阶之旅: 代码已经复制到剪贴板
type
type User = {
name: string
age: number
};
type SetUser = (name: string, age: number)=> void;
@前端进阶之旅: 代码已经复制到剪贴板
# 都允许拓展(extends)
interface和type都可以拓展,并且两者并不是相互独立的,也就是说interface可以extends type,type也可以extends interface。 虽然效果差不多,但是两者语法不同
interface extends interface
interface Name {
name: string;
}
interface User extends Name {
age: number;
}
@前端进阶之旅: 代码已经复制到剪贴板
type extends type
type Name = {
name: string;
}
type User = Name & { age: number };
@前端进阶之旅: 代码已经复制到剪贴板
interface extends type
type Name = {
name: string;
}
interface User extends Name {
age: number;
}