ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

typescript面试题

typescript面试题

interface/type的关区别和使用

总结

  1. interface:可扩展,支持声明合并,适合定义对象和函数,支持extends
  2. type: 更灵活,类型别名,但不能重复定义,支持联合/交叉类型

interface:

  1. 只能定义对象结构
interface User {name: string;age: number;
}
  1. 声明合并
interface User {name: string;
}interface User {age: number;
}// 自动合并为:
// interface User { name: string; age: number; }const u: User = { name: 'Tom', age: 20 }; // ✅ 正确
  1. 继承与扩展
interface Person {name: string;
}interface User extends Person {age: number;
}

实现类

// implements type(只要 type 是对象结构)
class User implements UserInterface {// 必须实现 interface 定义的结构
}

type:

  1. 类型别名
type User = {name: string;age: number;
};// 更强大的能力:
type ID = string | number;
type Point = [number, number];
type Callback = (data: string) => void;
  1. 不支持重复定义
  2. 交叉类型
type Person = {name: string;
};type User = Person & {age: number;
};
返回列表