我们也可以使用interface来定义函数类型: interface IAdd { (num1: number, num2:number): number; } 如示例所示,type和interface都能定义函数类型,不过在语法上有细微差别,type定义时使用=>,而interface定义时使用:。一般情况下,我们优先使用type来定义函数类型,因为它更短更简洁,代码可读性更高,更重要的是interf...
交叉类型可以连接多个interface,interface可以extendstype,但不可以extends联合类型。 interfaceA{name:string;}interfaceB{age:number;}typeC=A&B;typeD={name:string;}interfaceEextendsD{age:number;}typeF=A|B;// 报错// An interface can only extend an object type or intersection of object types with st...
interface可以被继承或者拓展其他接口,可以建立更清晰的接口继承关系 约束方式: type通常用于约束某一种类型,比如给一个复杂的联合类型起一个简单易懂的名称 interface通常用于约束对象的结构,可以描述对象的属性和方法 总的来说,type与interface在很多情况下可以互相替代,但在某些特定的情况下,选择使用其中一个可能更合适。
❗️interface和type都可以拓展,并且两者并不是相互独立的,也就是说 interface 可以 extends type, type 也可以 extends interface 。 虽然效果差不多,但是两者语法不同。 不同点 1、type 可以声明基本类型别名,联合类型,元组等类型,而 interface 不行 2、type 语句中还可以使用 typeof 获取实例的 类型进行赋...
// 'extends' clause of exported interface 'X' has or is using private name 'string'. interfaceXextendsstring { } 无法用interface定义的类型都使用type,比如基础类型、联合类型、元组等。 typeName =string; typePersonName = { name:string; }; ...
相同1:type 和 interface都支持扩展 // type 扩展typemyObj={name:string;}// &符号typemyObjPlus=myObj&{age:number};constnewObj:myObjPlus={name:'',age:233}; // interface 扩展interfacemyObj{name:string;};// extends继承扩展interfacemyObjPlusextendsmyObj{age:number;};constnewObj:myObjPlus={na...
interface PointX { x: number } type Point = PointX & { y: number } 接口vs 类型别名不同点 1. 类型别名更通用(接口只能声明对象,不能重命名基本类型) 类型别名的右边可以是任何类型,包括基本类型、元祖、类型表达式(&或|等类型运算符);而在接口声明中,右边必须为结构。例如,下面的类型别名就不能转换...
在TypeScript中,type和interface都用于定义自定义类型,但它们在一些细节上有着不同的行为。本文将深入探讨type和interface的主要区别,并通过示例代码演示它们在不同情境下的使用。 2.Type 的特性与适用场景 type主要用于创建联合类型、交叉类型、以及定义复杂的类型别名。下面是一个使用type定义联合类型的示例: ...
当我们使用 TypeScript 时,就会用到interface和type,平时感觉他们用法好像是一样的,没啥区别,都能很好的使用,所以也很少去真正的理解它们之间到底有啥区别。我们开发过经常或这么来定义类型: interface Point{x:number;y:number;} 或者这样定义: typePoint={x:number;y:number;}; ...
interface VS type 相同点 都可以描述一个对象或者函数 interface type 都允许拓展(extends) interface extends interface type 与 type 相交 interface extends type type 与 interface 相交 不同点 type 可以而 interface 不行 interface 可以而 type 不行 总结 interfa