TypeScript接口与类的使用
一.TypeScript接口 Interfaces
可以约定一个对象的结构 一个对象去实现一个接口 就必须拥有这个接口中所有的成员用interface定义接口,
并且定义接口中成员的类型 编译之后会发现typeScript中的接口只是对成员做类型约束的


定义string类型的key值和value值接口


二.类的概念
描述一类具体事物的抽象特征,以生活中为例,比如汽车是一个类,比亚迪,宝马,奔驰属于子类,除了有父级的共同特点4个轮胎,
一个方向盘之外,还有自己独有的特性。ES6之前 JavaScript没有类的概念 ,ES6之后有了Class类的概念,TypeScript增强了Class的
相关语法。举例说明:

类的访问修饰符
public 公有属性 没有限制
private 私有属性 只能在类的内部去访问 如果在类的外部访问的话 会报错
protected 受保护属性 与private区别是可继承父类的方法和属性



类与接口
比如说人和动物是两个类,他们有共同的特点就是吃和跑,则吃和跑就是人和动物的接口,但是动物的吃和跑与人的吃和跑毕竟不一样,
所以是两个类,而不是一个类的继承。像C#,java这些语言更倾向于一个能力设定为一个接口,因为吃和跑不是同时进行的,这样设
计的话能使代码更细化 如下图所示:

TypeScript 抽象类
抽象类一定程度上跟接口的定义差不多,约束子类中必须有某一个成员,不同于接口的是抽象类可以包含一些具体的实现,抽象类一
般指的大的方向类,打个比方:动物就是抽象类,定义抽象类之后 只能够继承 不能再使用new的方式去创建实例对象了,定义抽象
类的方式 abstract 如下图所示:

TypeScript 泛型
定义函数或者接口或者类的时候没有指定具体的类型 使用的时候再去指定具体类型的这样一种特征这样做的目的是极大可能的复用
我们的代码 举例如下图所示:

上图所示泛型为number类型,如果为string类型的话 这段代码就不能用了,所以我们可以用一个参数T代表类型 如下图所示:

TypeScript接口与类的使用的更多相关文章
- 从C#到TypeScript - 接口
总目录 从C#到TypeScript - 类型 从C#到TypeScript - 高级类型 从C#到TypeScript - 变量 从C#到TypeScript - 接口 从C#到TypeScript ...
- typescript接口(学习笔记非干货)
typescript的核心原则之一就是对所具有的shape类型检查结构性子类型化 One of the core principles of typescript is to check struct ...
- typescript接口的概念 以及属性类型接口
/* 1.vscode配置自动编译 1.第一步 tsc --inti 生成tsconfig.json 改 "outDir": "./js", 2.第二步 任务 ...
- Typescript 接口(interface)
概述 typescript 的接口只会关注值的外形,实际就是类型(条件)的检查,只要满足就是被允许的. 接口描述了类的公共部分. 接口 interface Person { firstName: st ...
- 《三》大话 Typescript 接口
> 前言: 本文章为 TypeScript 系列文章. 旨在利用碎片时间快速入门 Typescript. 或重新温故 Typescript 查漏补缺.在官方 api 的基础上, 加上一些日常使用 ...
- TypeScript 接口继承
1.TypeScript 接口继承 和类一样,接口也可以通过关键字 extents 相互继承.接口继承,分为:单继承和多继承,即继承多个接口.另外,接口也可以继承类,它会继承类的成员,但不包括具体的实 ...
- Myeclipse中打开接口实现类的快捷键
Myeclipse中打开接口实现类的快捷键-----Ctrl + T Myeclipse中 Open Type快捷键-----Ctrl + Shift + T
- IDE:Eclipse查看接口实现类快捷键
1.打开接口类 2.双击接口名选中 3.Ctrl+T,打开接口实现类
- Servlet API遍程常用接口和类
本文主要总结Servlet API遍程常用接口和类 Servlet API http://tomcat.apache.org/tomcat-5.5-doc/servletapi/index.html ...
随机推荐
- k8s之yaml文件书写格式
k8s之yaml文件书写格式 1 # yaml格式的pod定义文件完整内容: 2 apiVersion: v1 #必选,版本号,例如v1 3 kind: Pod #必选,Pod 4 metadata: ...
- mac中nvm的安装和使用
nvm 是 Mac 下的 node 管理工具,如果是管理 Windows 下的 node,可以使用 nvmw 或 nvm-windows . 一.若电脑中已安装node,需先卸载.参考学习的文档:ht ...
- 从零到一快速搭建个人博客网站(域名备案 + https免费证书)(一)
环境介绍 资源 说明 centos v7.2 docker 快速部署项目环境 nginx 反向代理,同时配置https证书 halo v1.4.2,开源博客项目 Let's Encrypt 免费证书 ...
- SpringBoot集成基于tobato的fastdfs-client实现文件上传下载和删除
1. 简介 基于tobato的fastdfs-client是一个功能完善的FastDFS客户端工具,它是在FastDFS作者YuQing发布的客户端基础上进行了大量的重构,提供了上传.下载.删除. ...
- Java IO流字符流简介及基本使用
Java IO流字符流简介及常用字符流的基本使用 字符流分为输入字符流(Writer)和输出字符流(Reader),这两种字符流及其子类字符流都有自己专门的功能.在编码中我们常用的输出字符流有File ...
- 浏览器开发者工具network详解
General概诉 请求链接 Request URL: 请求方式 Request Method: 代码状态 Status Code: 远程地址 Remote Address: 引用协议 用于过滤 Re ...
- js处理浏览器兼容
1.try catch 在try中执行我们的代码,如果在执行的过程中发生了异常信息,我们在catch中写代替的执行方案 前提:不兼容四位情况下,执行对应的代码,需要发生异常错误才可以检测到 弊端:不 ...
- [OI笔记]基础图论/图算法
[2017.8.29 00:00]--前几天开始好好学了几天的图论,不过这最近又突然因为一些原因(其实是晚上没睡好导致白天没精神)颓废了几天-一方面为了控制自己同时也可以当做之后noip前复习用的笔记 ...
- 企业微信JS-SDK实现会话聊天功能
vue引入企业微信JS-SDK实现会话聊天功能 这两天在做一个对接企业微信实现会话聊天的功能, 发现企业微信文档这块儿做的不是特别详细,网上搜索也没找到特别完整的流程. 期间也踩了不少的坑, 在此进行 ...
- C# Wpf Shape类继承关系
Path派生于Shape namespace System.Windows.Shapes { public sealed class Path : Shape { // Path 派生于Shape } ...