接口

接口也相当于语法规范,在使用ts编写的时候,需要注重的就是数据类型以及语法规范,恰好这里提供了一个接口,在进行传值的时候,传值的类型以及字段必须符合我们预期的类型规范才可以,下面是代码演示

语法:interface 接口名 { 参数名 : 数据类型 } ,例如: interface IPerson { username : string }

    // 接口:是一种能力,一种约束而已
// 定义一个接口 此处定义规范
interface IPerson{
firstName : string // 姓氏
lastName : string // 名字
} // 输出姓名 在调用此方法的时候,需要传值,传的值必须符合IPerson内定义的规范
function showName (person : IPerson) {
return `${person.firstName},${person.lastName}`
} const person = {
firstName : '孙',
lastName : '悟空'
}
// 此处调用showName 的时候 传入person 符合上面定义的接口规范
console.log(showName(person)); // 打印 孙,悟空

如果传值少一项,或者传入的类型错误,则会编译报错,ts会给予提示,例如

const person = {
firstName : '孙',
// lastName : '悟空'
}
console.log(showName(person));
// 此处传入的person 内部少一个字段,编译报错


接口继承

接口可以继承,子接口继承父接口,子接口就拥有父接口定义的数据类型约束,例如在此处定义了两个接口

// 接口1
interface ICart {
name : string
}
// 接口2
interface IColor {
color : string
}

这两个接口已经写好了,有时候需要对不同的数据进行约束,单一的接口可能不太合适,或者不太够用,那么就可以将多个接口组合,这就是继承。比如,这里定义了A接口 name ,B接口color,现在有一条数据:名字是东风,颜色为红色,价格999,此时可以将多个接口组合起来,B接口继承A接口,让B接口拥有A接口的数据类型约束,或者是定义一个新接口继承AB两个接口。

// 定义一个接口,继承 ICart 和 IColor
interface ICartInfo extends ICart,IColor{
price : number // 自身也可以定义数据类型
}

此时 ICartInfo 的接口实际上约束的数据类型为:

interface ICartInfo extends ICart,IColor{
name : string
color : string
price : number
}

使用接口

const cartInfo : ICartInfo = {
name : '东风',
color : "红色",
price : 999
}
console.log(cartInfo); // 输出 { name : '东风' , color : "红色" , price : 999 }

案例源码:https://gitee.com/wang_fan_w/ts-seminar

如果觉得这篇文章对你有帮助,欢迎点亮一下star

【TS】接口和接口继承的更多相关文章

  1. java接口中多继承的问题

    java中支撑多继承吗? 支持->接口啊 为什么接口支持多继承呢?因为接口中没有方法体!即使可能两个接口中有一样的抽象方法,但是 只会调用子类中覆盖该同样抽象方法的具体方法!不会引起调用的歧义! ...

  2. Java接口之间的继承

    /** * Created by xfyou on 2016/11/3. * 多接口之间的继承 */ public class HorrorShow { static void u(Monster b ...

  3. 接口是否可继承接口? 抽像类是否可实现(implements)接口? 抽像类是否可继承实体类(concrete class)?

    接口是否可继承接口? 抽像类是否可实现(implements)接口? 抽像类是否可继承实体类(concrete class)? 1. 接口可以继承接口. 2. 抽像类可以实现(implements)接 ...

  4. java中接口之间的继承

    最近在读一些源码的时候突然发现了一个很神奇的东西,它的原始形态是这样的: 在这行代码中,BlockingDeque.BlockingQueue和Deque是三个接口.刚发现这个问题时,我是十分吃惊的, ...

  5. Java:接口继承接口 (多继承机制)

    在看API文档时,突然发现一个接口可以是其他接口的子接口,这说明接口之间会存在继承的关系.查找了相关的资料,做一个总结. 是继承还是实现 首先要搞清楚接口之间的关系使用的关键字是extends还是im ...

  6. 为什么java的类是单继承的,接口是多继承的

    类 如果一个类继承了两个类,但是这两个类中有相同的方法,那么子类调用方法时,无法确定应该调用哪个父类的方法. [c++是多继承的] 接口 jdk1.7  接口可以多继承,是因为当接口中是抽象方法.不存 ...

  7. java接口中的继承

    java.util.concurrent包下的 public interface BlockingDeque<E> extends BlockingQueue<E>, Dequ ...

  8. HashMap和Hashtable的区别--List,Set,Map等接口是否都继承自Map接口--Collection和Collections的区别

    面试题: 1.HashMap和Hashtable的区别? HashMap:线程不安全,效率高,键和值都允许null值 Hashtable:线程安全,效率低,键和值都不允许null值 ArrayList ...

  9. PHP实现多继承 - 通过接口的多继承特性(二)

    原文地址:http://small.aiweimeng.top/index.php/archives/51.html 在上篇文章中写到php可以使用```Trait```实现代码的复用,下面介绍使用接 ...

  10. 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?

    接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)? 答:接口可以继承接口.抽象类可以实现(implements)接口,抽象类 ...

随机推荐

  1. day25-Listener监听器

    Listener监听器 1.Listener监听器介绍 Listener监听器是JavaWeb三大组件之一.JavaWeb三大组件分别是:Servlet程序,Listener监听器,Filter过滤器 ...

  2. 大趋智能打印机java api

    对接飞鹅和易联云后 ,网上几乎没资料对大趋智能打印机java api分享,故此分享一波. 官方文档地址 SnParam.java package com.shanheyongmu.openapi.pa ...

  3. html CheckBox

    1.获取单个checkbox选中项(三种写法)$("input:checkbox:checked").val()或者$("input:[type='checkbox']: ...

  4. Day26:内部类的详解

    内部类 1.1内部类概述 内部类:就是在一个类中定义另外一个类. 例如我们在A类中定义一个B类,那么B类就是A类的内部类,A则是B的外部类. 好比我们的手机是一个类,而手机内部的零件又属于一个类. 内 ...

  5. nginx-1.22.0版本安装

    nginx运行状态查看 查看80端口占用情况:netstat -tunlp | grep 80 # 查看进程是否运行ps -A | grep nginx # 强制关闭nginxpkill nginx ...

  6. 如何解决arthas-failed-to-bind-telnet-or-http-port问题

    解决方法 一台机器启用多个微服务的时候可能出现 多个 arthas端口冲突.可以配置为随机端口,或者配置为 -1 12 #arthas.telnet-port=-1#arthas.http-port= ...

  7. 从一个 issue 出发,带你玩图数据库 NebulaGraph 内核开发

    如何 build NebulaGraph?如何为 NebulaGraph 内核做贡献?即便是新手也能快速上手,从本文作为切入点就够了. NebulaGraph 的架构简介 为了方便对 NebulaGr ...

  8. 动态SQL遇到的问题

    看图 查不出来任何数据 因为判断有问题 修改方法如下:

  9. 【机器学习】李宏毅——Transformer

    Transformer具体就是属于Sequence-to-Sequence的模型,而且输出的向量的长度并不能够确定,应用场景如语音辨识.机器翻译,甚至是语音翻译等等,在文字上的话例如聊天机器人.文章摘 ...

  10. Jmeter 定时器之同步定时器(Synchronizing Timer)

    性能测试中需要模拟多用户并发测试,此时需要用到同步定时器(Synchronizing Timer).如下图,模拟用户组的数量设置20,相当于20个用户(线程)并发 名词解释: 名称:定时器名称,可根据 ...