【TypeScript】接口

接口

接口是对象的状态(属性)和行为(方法)的抽象(描述)
接口: 是一种类型,一种规范,一种规则,一种约束

    // id是number类型, 必须有, 只读的
    // name是string类型, 必须有
    // age是number类型, 必须有
    // sex是string类型, 可以没有

    interface IPerson {
        // readonly: 只读
        readonly id: number
        name: string
        age: number
        // ?: 可有可无
        sex?: string
    }

    let person: IPerson = {
        id: 1,
        name: 'kudo',
        age: 18,
        sex: '男'
    }

    console.log(person) 
    person.name = '张三'
    console.log(person)

在这里插入图片描述

函数类型

    // 函数类型: 通过接口的方式作为函数的类型来使用

    // 定义一个接口,用来作为某个函数的类型使用
    interface ISearchFunc {
        // 定义一个调用签名
        (source: string, subString: string): boolean
    }

    // 定义一个函数,该类型就是上面定义的接口
    const searchString: ISearchFunc = function(source: string, subString: string): boolean {
        // 在source中查找subString, 返回true或false
        return source.search(subString) > -1
    }
    
    //调用函数
    console.log(searchString('哈哈哈,我好帅', '帅'))

在这里插入图片描述

类类型

    // 定义一个接口
    interface IFly {
        // 该方法没有任何的实现
        fly()
    }

    // 定义一个类,这个类的类型就是上面定义的接口
    class Bird implements IFly {
        fly() {
            console.log('我会飞')
        }
    }

    // 实例化对象
    const bird = new Bird()
    bird.fly()


    // 定义一个接口
    interface ISwim {
        swim()
    }

    // 定义一个类,这个类的类型是IFly和ISwim
    class Person implements IFly, ISwim {
        fly() {
            console.log('我会飞')
        }
        swim() {
            console.log('我会游泳')
        }
    }
    const person = new Person()
    person.fly()
    person.swim()

    // 接口可以继承多个接口
    interface IMyFlyAndSwim extends IFly, ISwim {}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值