ts+2 | 青训营笔记

52 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第23天

接口(interface)

接口:在面向对象的编程中,接口是一种规范的定义,它定义了行为和动作的规范,在程序设计里面,接口起到一种限制和规范的作用 使用interface关键字定义 接口一般首字母大写 有的编程语言中会建议接口的名称加上 I 前缀 可选属性:可选属性的含义是该属性可以不存在 有时候不要完全匹配一个接口,那么可以用可选属性。使用?号

注:如果在接口中定义的一个属性,但是是使用就会报错,这个时候就可以使用可选属性(如下图中的案例)

image.png

定义状态

定义状态必须定义接口
:component后面的尖括号中,第一个参数必须是props的接口,但是我们没有写,那就用{}占位,不然会报错的
public是共有的意思,谁都可以使用,可加可不加 ,但是建议加上

image.png

函数类型的描述

接口除了可以描述带有属性的普通对象,也可以描述函数类型。

interface AddFun {
    (value1:number, value2:number):boolean;
}

const addFun:AddFun = (val1: number,val2:number):boolean =>
{
    if((val1 + val2) < 100 )return false;
    else return true;
}


类的描述

类使用 implements 来 实现接口。

interface Point {
    x:number,
    y:number,
    counter: (x:number,y:number)=>number,
}
class SomePoint implements Point {
    x = 1;
    y = 2;
    counter(x:number, y:number){
        return x + y;
    }
}


接口的继承

接口使用 extends 来实现接口的继承。

interface PartialPointX {
    x: number;
}

interface Point extends PartialPointX {
    y:number;
}

const point = {
    x:1,
    y:2,
}



接口与类型别名的区别

类型别名也可以来描述对象、函数的结构,同时也可以对类的部分进行描述。


type Point = {
    x: number,
    y:number
}

type counter = (x:number,y:number)=>boolean;


const point:Point = {
    x: 1,
    y:8
}
class SomePoint implements Point {
    x = 1;
    y = 4;
}