当类型被约束后,就拥有了约束类型的所有静态方法1、普通类型约束let a:string=xx2、指定类型和属性(1)指定对象let a:{属性1:string,属性2:string}=x    必须是一个对象,且约束了对象属性对象中约束函数{方法名():返回值}通过对象字面量对象来赋值,数据结构必须和定义的接口相同let xx:{属性1:类型,属性2:类型}={属性1:xx,属性2:xx}通过变量来赋值,数据结构可以增加额外的属性let x={属性1:xx,属性2:xx}let xxx:{属性1:类型}=x;  合法(2)指定元组let tuple:[类型1,类型2,类型3]=[类型1元素,类型2元素,类型3元素](3)指定数组let arr2:类型[]=[...];  let arr2:(类型1|类型2)=[]通过元组来指定数组内单个数组元素不同类型let x:[类型1,类型2,类型3][]=[[类型1元素,类型2元素,类型3元素],[类型1元素,类型2元素,类型3元素]](4)指定类class X{...}let xx:X=new X();    xx是X类的实例对象或数据结构相同的对象let xx:X={和类中键相同且数量相同}(5)指定函数方式一function xx(x:类型,y:类型):返回值类型{...}函数表达式:const fn= function(x:类型,y:类型):返回值类型{...}箭头函数:const fn= (x:类型,y:类型):返回值类型=>{...}方式二let xx:(x:类型,y:类型)=>返回值类型=function(x:类型,y:类型):返回值类型{...}对象中指定函数{方法名():返回类型}3、type约束type可以声明基本类型别名,联合类型,元组等类型(1)基本使用type x={age:number;}type xx=Number(2)交叉(实现类似接口继承)type xxx=x&{sex:string}可以实现接口和接口的交叉,但是只能赋值给type类型type x=接口&接口当接口和type都&时,如果其中一个是基本类型,则&结果为基本类型,都是基本类型&结果为never,都是对象进行属性的添加(3)交叉接口interface y={name:string}type x1=y&x(4)使用typeof获取实例的类型进行赋值let div = document.createElement('div');type B = typeof divfunction fun(age: number, name: string) {return {age,name};interface IObj {id?: typeof fun;  typeof后只能接变量,不能直接写内容表达式等}4、interface约束interface可以继承(1)基本使用interface x={age:number;}(2)继承type xxx=x&{sex:string}(3)继承typetype x={age:number;}interface y extends x{name:string}(4)继承类class X={属性:类型}  interface xx extends X{属性2:类型}let xxx:xx={属性:值,属性2:值};(5)声明合并interface User {name: stringage: number}interface User {sex: string}User 接口为 {name: stringage: numbersex: string }5、约束充当函数type x=(x1:类型,y1:类型):返回类型interface y{(x1:类型,y1:类型):返回类型}6、约束充当数组type x=[index:索引类型]:返回类型interface y{[index:number索引类型]:类型;   索引为数值,元素为指定类型的数组}7、解构赋值约束let {x,y}:{x:number,y:number}={x:1,y:2}

typescript 类型约束(:普通约束、接口约束、type约束)相关推荐

  1. 【TS】在 TypeScript 中,我们使用接口(Interfaces)来定义对象的类型

    一.什么是接口 在 TypeScript 中,我们使用接口Interfaces来定义对象的类型. 可以用来约束一个对象,函数,以及类的结构和类型. 在面向对象语言中,接口Interfaces是一个很重 ...

  2. Vivado Design Suite用户指南之约束的使用第二部分(约束方法论)

    Constraints Methodology(约束方法论) 关于约束方法论 设计约束定义了编译流程必须满足的要求,以使设计在板上起作用. 并非所有步骤都使用所有约束 在编译流程中. 例如,物理约束仅 ...

  3. html约束验证的例子,HTML5利用约束验证API来检查表单的输入数据的代码实例

    HTML5对于表单有着极大程度的优化,无论是语义,小部件,还是数据格式的验证.我猜你肯定会以浏览器兼容作为借口不愿意使用这些"新功能",但这绝不应该成为使你停滞不前的原因,况且还有 ...

  4. mysql约束添加删除数据_mysql中约束的添加,修改,与删除

    MySQL中的约束,添加约束,删除约束,以及其他的一些修饰: 一.NOT NULL(非空约束) 添加非空约束 1)建表时直接添加 CREATE TABLE t_user(user_id INT(10) ...

  5. iOS Masonry详解mas_makeConstraints() 添加约束 mas_remakeConstraints() 移除之前的约束,重新添加新的约束 mas_updateConst

    现在iPhone手机屏幕越来越多, 屏幕适配也越来越重要. Masonry就是为屏幕适配而生的三方框架. Masonry基础API mas_makeConstraints() 添加约束 mas_rem ...

  6. oracle数据库约束是什么意思,oracle数据库约束

    oracle数据库约束 约束用于确保数据库数满足业务规则. 约束包括:NOT NULL,UNIQUE,PRIMARY KEY,FOREIGN KEY以及CHECK等5种类型. 建立主键约束和唯一约束时 ...

  7. 【MySQL - 5】约束是什么?非空约束、唯一约束、主键约束、外键约束有什么作用?

    目录 1. 非空约束 2. 唯一约束 3. 主键约束 自动增长 4. 外键约束 级联操作 首先我们来想象一下,前几篇文章在我们操作数据库的过程中,自由度是很高的,想给哪个赋值就给哪个赋值,但是这样子, ...

  8. SQL约束(主键约束 primary key、外键约束 foreign key、唯一约束unique 、CHECK约束)

    注意: A.表中有数据不能创建约束 B.视图下设置后,要点击保存(只有保存后在才看的到) c   别忘了,点刷新,才会出来呀! 1.主键约束 primary key 主键是每行的唯一标识符,仅仅通过它 ...

  9. ise 时钟约束_ISE——ucf文件中时序约束

    摘要:本文主要通过一个实例具体介绍ISE中通过编辑UCF文件来对FPGA设计进行约束,主要涉及到的约束包括时钟约束.群组约束.逻辑管脚约束以及物理属性约束. Xilinx FPGA设计约束的分类 Xi ...

最新文章

  1. php怎么样sphinx,php使用sphinx
  2. freeCodeCamp纳什维尔十月聚会回顾
  3. python爬虫第二课:url解析
  4. FileTracker:error FTK1011编译错误的原因和解决办法
  5. JimStoneAjax如何跟DWR竞争?
  6. jquery中如何获得$.ajax()事件返回的值
  7. php字符不可选状态,php – mailto不可读的字符 – unicode
  8. Xtrabackup--InnoDB备份工具介绍(1)
  9. npm:no such file /usr/local/lib/node_modules/vue-cli/node_modules/get-stream
  10. 智能手机上最常见的传感器
  11. Centos 在 Selenium 使用中的异常:chrome not reachable
  12. 用户画像的起源:The origin of personas
  13. CCleanner下载安装教程
  14. AQS(AbstractQueuedSynchronizer)同步器
  15. Android中注解处理器系列之-简单使用
  16. 蒙特卡罗MCNP学习汇总(四)--计数基础-探测器
  17. 用vue写一个计算总价
  18. ORA-01122;ORA-01110;ORA-01207问题解决经验总结
  19. vue 条形码--JsBarcode
  20. 网易逆水寒服务器型号,《逆水寒》周年庆 网易:什么要求都满足

热门文章

  1. Junbo_kobe-for循环画满天星
  2. plsql备份还原oracle数据库,(已实践)PLSQL本地还原Oracle数据库dmp文件
  3. 图片瀑布流加载和购物车
  4. win10 3月份补丁导致打印PDF蓝屏
  5. C++实现字符串的反转
  6. ABAP删除字符串某字符
  7. pccad无法找到所需的动态链接库_请教天正给排水8.2问题(tch_initstart.arx 无法找到所需的动态链接库或其他文件)...
  8. C++ 面向对象 - 类的继承与派生
  9. Towards Efficient and Scale-Robust
  10. 路由器的硬件测试软件,刚做的简易网线测试工具 - 无线路由器硬件改造以及故障维修 - 恩山无线论坛 - Powered by Discuz!...