Type与interface的区别
type是类型别名,声明基本类型、对象类型、联合类型、元素、交集。 interface可以定义一个对象或函数 都允许拓展: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;
}
// type extends interface
interface Name {
name: string;
}
type User = Name & {
age: number;
}
Type---类型别名
interface---接口
定义:是一种定义对象结构的方式。只描述一个对象应该具备哪些属性和方法
interface Person {
name: string;
age: number;
email?:string; // 可选属性(?)
readonly id:number; // 只读属性,使用readponly关键字限制属性只能在初始化时赋值
sayHello(): void;
}
const user: Person = {
name: "Alice",
age: 25,
sayHello() {
console.log(`Hello, my name is ${this.name}`);
}
};
user.sayHello(); // 输出:Hello, my name is Alice