TypeScript---Type与interface的区别

73 阅读1分钟

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