06. interface关键字

2023-09-30 22:51:14发布
30

基础语法

interface的功能与type类似。用法 :

interface V {
    v1: string
    v2: number
    v3: boolean
    v4: ()=> void
}

const p1: V = {
    v1: '1',
    v2: 2,
    v3: false,
    v4() {}
}
const p2: V = {
    v1: '1',
    v2: 2,
    v3: false,
    v4() {}
}


继承

interface Person {
    name: string;
    age: number;
}

interface Men extends Person {
    sex: string
}

const p:Men = { // Men接口继承了Person接口的name和age
    name: 'tom', 
    age: 15,
    sex: 'boy'
}


&操作符

上面的继承案例也可以用&操作符实现

interface Person {
    name: string;
    age: number;
}

interface Men {
    sex: string
}

const p:Person & Men = {
    name: 'tom',
    age: 15,
    sex: 'boy'
}


interface与type区别

1、interface只能为对象制定类型,而type则可以定义任意类型

2、interface可以使用extends关键字实现继承

interface Person {
    name: string
    age: number
}

interface Men extends Person {
    hobby: string
}

const p:Men = {
    name: 'tom',
    age: 12,
    hobby: 'play game'
}

而type如果要实现类似的功能,只能使用&操作符。如 :

type Person = {
    name: string
    age: number
}

type Men = {
    hobby :string
} & Person

const p:Men = {
    name: 'tom',
    age: 12,
    hobby: 'play game'
}