ts中接口的用法
ts中的接口主要的作用是:
- 对“对象”进行约束描述
- 对“类”的一部分行为进行抽象
一、属性接口
接口中可定义 确定属性、可选属性、任意属性、只读属性
interface UserInfo {
name: string;
age: number;
}
const myInfo: UserInfo = {
name: "haha",
age: 20
};
接口中约束好的确定属性,定义对象变量的时候 不能少
2、可选属性
interface UserInfo {
name: string;
age: number;
sex?:string
}
const myInfo: UserInfo = {
name: "haha",
age: 20
};
接口中的可选属性,是表示在对象变量中可以不存在
3、任意属性
interface UserInfo {
name: string;
age: number;
sex?:string ;
[propName: string]:any;
}
const myInfo: UserInfo = {
name: "haha",
age: 20,
test1: 'lala',
test2: 'ff',
test3:123
};
注:一旦定义了任意属性,那么确定属性和可选属性的类型都必须是任意属性类型的子类;
定义了任意属性后,对象变量中的属性个数才可以出现比接口的属性数量多的情况
4、只读属性
interface UserInfo {
readonly id: number;
name: string;
age: number;
sex?: string;
[propName: string]: any;
}
const myInfo: UserInfo = {
id: ,
name: "haha",
age: 20,
test1: "lala",
test2: "ff",
test3: 123
};
只读属性也是确定属性,在对象变量定义的时候必须有值,此后不能修改
二、函数接口
对方法传入的参数以及返回值进行约束
interface Func {
(param1: string, param2: number): boolean;
}
let myFunc: Func = function(param1, param2){
return typeof param1 === "string" && typeof param2 === "number";
};
myFunc("22222", 1111);
三、索引接口(不常用)
可对数组或对象进行约束
interface ArrIndex {
[index:number]: string
}
interface Obj {
[index:string]:string
}
let myArr: ArrIndex = ['first','second']
let myObj:Obj = {
name: 'kkkk'
}
四、类接口
对类进行约束,和抽象类有点相似
- 类实现接口implements
- 接口继承接口
- 接口继承类
ts中接口的用法的更多相关文章
- ts中的接口
// 接口:接口是一种定义行为和规范,在程序设计中接口起到限制和规范的作用.接口定义某一 // 一批类所需要遵循的规范,接口不关系这些类的内部实现,之规定这些类必须提供某些方法 /* 1.对批量方法进 ...
- java中this的用法?
2008-07-28 08:10cztx5479 | 分类:JAVA相关 | 浏览4533次 java中this的用法? import java.awt.*; import java.awt.even ...
- 框架源码系列十:Spring AOP(AOP的核心概念回顾、Spring中AOP的用法、Spring AOP 源码学习)
一.AOP的核心概念回顾 https://docs.spring.io/spring/docs/5.1.3.RELEASE/spring-framework-reference/core.html#a ...
- Delphi中ClientDataSet的用法小结
Delphi中ClientDataSet的用法小结 TClientDataSet控件继承自TDataSet,其数据存储文件格式扩展名为 .cds,是基于文件型数据存储和操作的控件.该控件封装了对数据进 ...
- 七、golang中接口、反射
一.接口定义 1.定义 interface类型可以定义一组方法,但是这些不需要实现,并且interface不能包含任何变量 package main import ( "fmt" ...
- python中MySQLdb模块用法实例
篇文章主要介绍了python中MySQLdb模块用法,以实例形式详细讲述了MySQLdb模块针对MySQL数据库的各种常见操作方法,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了python中 ...
- MySQL中CONCAT()的用法
MySQL中CONCAT()的用法 在日常开发过程中,特别是在书写接口的时候,经常会遇到字符串拼接的情况,比如在返回图片数据时,数据库里往往存储的是相对路径,而接口里一般是存放绝对地址,这就需要字符串 ...
- TypeScript完全解读(26课时)_9.TypeScript完全解读-TS中的类
9.TypeScript完全解读-TS中的类 创建class.ts文件,并在index.ts内引用 创建一个类,这个类在创建好后有好几个地方都标红了 这是tslint的一些验证规则 一保存就会自动修复 ...
- java中stringBuilder的用法
java中stringBuilder的用法 String对象是不可改变的.每次使用 System.String类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间.在需 ...
随机推荐
- layui 弹出层layer中from初始化 ,并在btn中返回from.data
1.弹出对话框 layer.open() 来初始化弹层 // 监听添加操作 $(".data-add-btn").on("click", function () ...
- 用记事本编辑HTML文件后保存代码全堆在一起了,记事本打开html文件格式乱了
经常会遇到这么一个现象,记事本打开编辑html代码,保存后格式就乱了,代码全部堆在一行了.遇到这种情况有时候也很无语 因为平常工作中也经常遇到这样的情况,后来通过研究,大概找到问题的所在. 我是这么一 ...
- Callablestatement与JavaBean及其实例
一. Callablestatement:调用 数据库中的存储过程.存储函数 connection.prepareCall(参数:存储过程/存储函数名)参数格式:存储过程:(无返回值return,用O ...
- 查询MySQL DB
public DataTable ConnMySql(string strRegisterNo) { try { DataTable dt = new DataTable("table&qu ...
- 【13】正则化网络激活函数(Batch归一化)
正则化网络激活函数(Batch归一化): 在神经网络训练中,只是对输入层数据进行归一化处理,却没有在中间层进行归一化处理.要知道,虽然我们对输入数据进行了归一化处理,但是输入数据经过σ(WX+b)σ( ...
- Pandas 中对列 groupby 后进行 sum() 与 count() 区别及 agg() 的使用方法
groupby[根据哪一列][ 对于那一列].进行计算 代码演示: direction:房子朝向 view_num:看房人数 floor:楼层 计算: A 看房人数最多的朝向 df.groupby([ ...
- word的一些运用技巧
1.去除换行符 替换:^p > 空格
- java - CAS及CAS底层原理
CAS是什么? CAS的全称为Compare-And-Swap它是一条CPU并发原语,也就是在CPU硬件层面上来说比较并且判断是否设置新值这段操作是原子性的,不会被其他线程所打断.在JAVA并发包ja ...
- 强烈推荐一款强大的公式编辑器软件AxMath
Axmath教程请移步:https://www.cnblogs.com/coco56/p/11759578.html
- ms17-010 利用msf的exp和一个扫描工具的复现
0x01简介 永恒之蓝漏洞是方程式组织在其漏洞利用框架中一个针对SMB服务进行攻击的漏洞,该漏洞导致攻击者在目标系统上可以执行任意代码. 攻击对象:win7及win7以下的操作系统且开启了445端口s ...