声明方式不同。interface后面必须跟对象结构,写法固定;type通过赋值符号定义,右边可以是任何合法的类型表达式。例如用type声明联合类型,interface无法做到。interfaceUser name: string这种写法只能描述对象,而typeUser = name: string或type ID = string | number都合法。扩展
不同于interface只能定义对象类型,type声明还可以定义基础类型、联合类型或交叉类型。 二,差异点: 1.定义类型范围 interface只能定义对象类型, 而type声明可以声明任何类型,包括基础类型、联合类型或交叉类型。 // 基本类型 type person = string // 联合类型 interfaceDog { name: string; } interfaceCat { age: ...
interface 不支持映射类型。 6.默认属性: 在TypeScript 3.7+ 中,interface 支持默认属性,但 type 不支持。 7.函数声明: 使用type 可以直接声明函数类型。例如:type Func = (x: number) => string; 虽然interface 也可以用来描述函数类型,但语法上稍有不同。 8.兼容性: 在某些情况下,type 和 interface 可以...
TS中type和interface在类型声明时的区别 在TS中interface 和type都可以用来自定义数据类型,两者有许多相同之处,但是也有差别。我们一般选择 type 来定义基本类型别名、联合类型、元组等类型,而选择 interface 来定义复杂的对象、类、以及进行接口的继承。 1. 声明常见类型 ...
简介:ts中interface和type的区别 type:类型别名;interface:接口,主要用于类型检查 差别 1:定义类型范围 interface只能定义对象类型。 type可以声明任何类型,基础类型、联合类型、交叉类型。 // 基础类型(相当于起别名)type person ='string';// 联合类型interfaceDog{name:string ...
总体而言,interface主要用于定义对象的形状和结构,支持扩展和类的实现;type主要用于创建类型别名,支持...
interface User { name: string; } interface User { id: number; } let user: User = { id: 666, name: "阿宝哥" }; b 类型别名 type User = { name: string; }; // 标识符“User”重复。ts(2300) type User = { //Error id: number; ...
不同点: type 可用于 string、number、bool、undefined、null,而 interface 只能描述对象(含数组、函数、包装对象、元组)同名 interface 会合并,而同名 type 会报错一个不太重要但是值得说给面试官的区别:ty…
type和interface在TypeScript中的区别主要有继承、合并声明和非对象类型的表示。在TypeScript中,type和interface都可以用来定义类型,但它们有一些区别。首先,interface主要用于描述对象的形状,例如定义一个对象的属性和方法。而type则更广泛地定义一种数据类型,可以表示联合类型、基本类型、交叉类型、元组或...