ts中type和interface的區別

首先,interface只能表示function,object和class類型,type除了這些類型還可以表示其他類型,例如

interface A{name:string;
            add:()=>void;
}
interface B{():void}

type C=()=>number;
type D=string;
type E={name:string,age:number}

interface可以合併同名接口,type不可以

interface A{name:string}
interface A{age:number}
var x:A={name:'xx',age:20}

interface可以繼承interface,繼承type,使用extends關鍵字,type也可繼承type,也可繼承interface,使用&

interface A{name:string}
interface B extends A{age:number}

type C={sex:string}

interface D extends C{name:string}

type E={name:string}&C

type F ={age:number}&A

還有類可以實現接口,也可以實現type

interface A{name:string;add:()=>void}
type B={age:number,add:()=>void}

class C implements A{
    name:'xx'
    add(){console.log('類實現接口')}
}

class D implements B{
    age:20
    add(){console.log('類實現type')}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章