interface 与 type 的一些区别

1.不同点

 ~~
interface :
 interface MyInterface {
	count: number
}
interface MyInterface {
	title: string
}
const w: MyInterface = {
	title: 'hello ts',
	count: 100
}
type :
	不能定义多个相同的
 type 一旦定义就不能再添加新的属性,而 interface 总是可扩展的(let const)
~~ 
type :
	可以定义基本类型别名,如type StringType = string
	可以声明联合类型,如 type paramType = number | string;
	可以声明元组类型,如type arrType = [string, string, number]
interface:
 	不能定义这些
~~ 
type :
	可以定义基本类型别名,如type StringType = string
	可以声明联合类型,如 type paramType = number | string;
	可以声明元组类型,如type arrType = [string, string, number]
interface:
 	不能定义这些
~~ 
interface :
	interface Animal {
		name: string
	}
	interface Bear extends Animal {
		honey: boolean
	}
	// 定义bear的实例
	const bear:Bear = {
		name: 'wine',
		honey: true
	}
	// 如果不写honey属性就会报错 
type: 
	type Animal {
		name: string
	}
	type Bear & Animal {
		honey: boolean
	}

2,相同点

都可以描述 对象或者函数
都可以扩展

3.两者的相互联系
interface extends interface:


	interface Name {
	    name: string;
	}
	
	interface User extends Name {
	    age: number;
	}

interface extends type

type Name = {
    name: string;
}

interface User extends Name {
    age: number;
}

type extends interface

interface Name {
    name: string;
}

type User = Name & {
    age: number;
}

你可能感兴趣的:(javascript,开发语言,ecmascript)