-
type 新类型名 = 现有类型
:定义类型别名,通过类型别名,可以将复杂的类型定义抽象为一个更简单的名字,并在代码中反复使用;可以用于基础类型、对象类型、联合类型、数组、函数等各种类型type UserType = { name: string; age?: number; readonly height: number }; let user: UserType = { name: "Alice", height: 188, };
-
interface
接口:是一种用于定义对象、函数、类等结构的方式interface IUser { name: string; age?: number; readonly height: number } let user: IUser = { name: "Alice", height: 188, };
-
两者区别:
-
区别一:
type
类型使用范围更广,而interface
主要用于定义对象的形状 -
区别二:同名接口可以合并(声明合并),如果两个地方声明了同名的接口,
TypeScript
会将它们的成员自动合并到一个接口中interface ILocal { x: number y: number } interface ILocal { z: number } const local: ILocal = { // 会合并,必须包含x,y,z x: 100, y: 200, z: 300 }
-
区别三:接口可以继承一个或多个其他接口,使得多个接口可以共享相同的属性和方法定义
interface IAdult { name: string, age: number } interface IWorker { working: () => void } interface ICoder extends IAdult, IWorker { eatting: () => void } const student: ICoder = { name: 'coder', age: 16, working() { console.log('working') }, eatting() { console.log('eatting') } }
-
区别四:类可以通过
implements
关键字来实现接口,保证类中定义了接口所要求的所有属性和方法,具体学习这篇文章:待后面补充
-
相关文章
- 10-07总结TypeScript相关知识-type 和 interface
- 10-07Typescript 中的 interface 和 type 到底有什么区别
- 10-07浅析TypeScript中const和readonly的区别、枚举和常量枚举的区别以及关于typescript中枚举的相关知识
- 10-07part5 vue和HTML5相关知识总结
- 10-07Day167/200 自动执行TypeScript和interface、type 区别
- 10-07TypeScript学习(九)interface 和 type 到底有什么区别?
- 10-07WinForm开发,窗体显示和窗体传值相关知识总结
- 10-07session和cookie相关知识总结
- 10-07TypeScript 里 interface 和 type 的区别
- 10-07IOS之UI--小实例项目--添加商品和商品名(使用xib文件终结版) + xib相关知识点总结