在TS中,interface 和 type的区别

type: 类型别名。

	// 平常我们会这样来使用它
	type MyNumber = number; // 基本类型
	type StringOrNumber = string | number; // 联合类型别名
	type tuple = [string, number]; // 元组类型

应用场景: 定义基本类型、定义元组类型、定义函数类型、定义联合类型、定义映射类型
interface: 只能用于定义对象类型
应用场景: 需要接口知道合并特性的时候、定义对象类型的时候

type 和 interface 不同点:
① type 类型别名 可以为基本类型、联合类型或元组类型定义别名,接口不可以。
② 同名的接口会自动合并,而类型别名不会(同名接口合并,同名类型别名会冲突)

type 和 interface 共同点:
①都可以用来描述对象或函数

	type Line = {
		x: number;
		y: number;
	}
	type SetLine = (x:number,y:number) => void;
	
	interface Line {
		x: number;
		y: number;
	}
	interface SetLine {
		(x: number, y: number): void;
	}

②都支持扩展

	type Car = {
		name: string;
	}
	type Benz =Car & {
		color: string;
	}
	const benz:Benz = {
		name: '梅克塞斯';
		color: '暗影骑士黑';
	}

	interface Car {
		name:string;
	}
	interface Benz extends Car {
		color: string;
	}
	// interface 还可以通过下面方式来扩展
	type Car = {
		name:string;
	}
	interface Benz extends Car {
		color: string;
	}
	// type 还可以通过下面方式扩展
	interface Car {
		name:string;
	}
	type Benz =Car & {
		color: string;
	}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值