文章目录

  • TS基础1(类型定义、接口)-学习笔记
    • 什么是TS

TS基础1(类型定义、接口)-学习笔记

什么是TS





    //ts用法var n:number = 10;let str:string = '10';let str2:string = 'abc';let str3:string = `hello ${str2}`;let flag:boolean = true;let u:undefined = undefined;let nu:null = null;//类型定义后,不允许类型改变var a:string = '10';// a = 10;  error//任意值(Any) 用来表示允许赋 值为任意类型var a2:any = '10';a2 = 10;a2 = true;//变量如果在声明的时候,未指定其类型,会被识别为任意值var a3;a3 = 'abc';a3 = 10;// 10,  '10'  //联合类型   可以为多种类型中的一种var a4:string | number;a4 = 10;a4 = '10';//注意!!!! 访问的是联合属性共有的属性中方法function getLength(str:string | number): number{return str.length};getLength(a4)//正确的写法// function getLength2(str:string | number[]): number{//     return str.length// };// getLength2([1,2,3])//数组  有多种定义方式//最简单的方式 类型+方括号 来表示数组var arr:number[] = [1,2,3,9];var arr2:string[] = ['a','b','c'];var arr3:any[] = ['a',2,true,[1,2]];//对象的类型  —— 接口//接口(Interfaces)可以用于对「对象的形状(Shape)」进行描述。//规范//接口首字母大写interface Person {name: string;age: number;};//对象受到接口的约束var tom: Person = {name:'tom',age:20};//定义的变量比接口少了属性是否允许  ——不允许var tom2: Person = {name:'tom'};//定义的变量比接口多了属性是否允许  ——不允许var tom3: Person = {name:'tom',age:20,sex:'男'};//可选属性  希望接口中有可选属性interface Person2 {name: string;age?: number;   //age属性是可选属性}var tom4: Person2 = {name:'tom'};var tom5: Person2 = {name:'tom',age:20};//可选属性只针对于当前设置的属性,仍然不能添加其它属性// var tom6: Person2 = {//     name:'tom',//     age:20,//     sex:'男'// };//任意属性   接口中添加一个任意的属性interface Person3 {name: string; //age?: number;   //age属性是可选属性[propName: string]: any;   //任意属性 }//注意:写入了任意属性[propName: string]  那么确定属性和可选属性必须是它的子属性var tom7: Person3 = {name:'tom',age:20,sex:'男',};//函数类型   输入和输出的约束//函数声明function f1(x: number,y: number): number{   //(x: number,y: number) 输入约束  : number 输出的约束return x+y}f1(1,1);//函数表达式var f2 = function(x: number,y: number): number{return x+y};//能否允许传多、少参数--不允许function f3(x: number,y: number): number{   return x+y}//f3(1,1,5);//f3(1);//参数默认值function f4(x: number= 5,y: number): number{   return x+y};//参数可选 //注意!!! 可选参数必须接在必需参数后面//换句话说:可选 参数后面不允许再出现必需参数function f5(x: number= 5,y?: number): number{   if(y){return x+y;}else {return x;}};f5(10);//f5(10,10); //OK

补充:

 //类型别名   typetype n = number;function f(i:n): n{return i};let n2: n = 100;//联合类型别名type a = string | number[];var x1:a = [2];var x2:a = '111';//var x3:a = 222;  //error

TS基础1(类型定义、接口)-学习笔记相关推荐

  1. TS基础2(类)-学习笔记

    文章目录 TS基础2(类)-学习笔记 class类 类的继承 修饰符 类的类型.实现接口 TS基础2(类)-学习笔记 class类 //类 class//首字母大写//类(Class):定义了一件事物 ...

  2. 阿里云Apsara Clouder专项技能认证-实现调用API接口-学习笔记

    Apsara Clouder专项技能认证-实现调用API接口-学习笔记 阿里云的一个小认证,闲来无事,考一下 一.API简介 API的概念 API(Application Programming In ...

  3. ES6基础5(Promise)-学习笔记

    文章目录 ES6基础5(Promise)-学习笔记 Promise 三个状态 状态转换 手写Promise源码 同步异步概念 jquery中 串行并行 async-await 微任务 宏任务 ES6基 ...

  4. ES6基础4(数据结构)-学习笔记

    文章目录 ES6基础4(数据结构)-学习笔记 set map symbol ES6基础4(数据结构)-学习笔记 set //set 数据结构 类似数组 成员信息唯一性var s = new Set() ...

  5. Java自学.接口学习笔记!

    接口学习笔记 文章目录 接口学习笔记 1.接口的概述与生活中的举例 2.接口定义的基本格式 3.接口的抽象方法 3.1接口抽象方法的定义 3.2接口的抽象方法使用 4.接口的默认方式 4.1接口的默认 ...

  6. 【vn.py学习笔记(二)】vn.py底层接口 学习笔记

    [vn.py学习笔记(二)]vn.py底层接口 学习笔记 1 CTP API的工作原理 1.1 CTP介绍 1.2 API功能介绍 1.3 CTP API文件 1.4 API 通用规则 2 CTP A ...

  7. ES6基础3(扩展)-学习笔记

    文章目录 ES6基础3(扩展)-学习笔记 字符串扩展 数值扩展 函数扩展 扩展运算符 ES6基础3(扩展)-学习笔记 字符串扩展 //扩展//字符串扩展charAt(); //返回指定索引位置的字符 ...

  8. redis基础命令和数据操作命令学习笔记

    redis基础命令和数据操作命令学习笔记 基础命令 安装成功后,redis的启动命令:先修改配置文件.将服务改成默认运行.然后以配置文件启动服务 redis-server config/redis-c ...

  9. Github与GitKraken的基础使用(一)[学习笔记]

    Github与GitKraken的基础使用(一)[学习笔记] Git与Github 使用Github.com 1.仓库(repository) 2.创建一个repo 3.在仓库中添加文件 4. Com ...

  10. SimpleITK图像基础(三)——SimpleITK学习笔记

    SimpleITK学习笔记 前言 1 sitk中的常见属性值 2 读取和保存图像 3 像素类型 4 SimpleITK图像数据和Numpy矩阵数据之间的转换 5 访问像素和切片 6 图像重采样 7 图 ...

最新文章

  1. maven修改setting文件后重启_Maven项目构建
  2. Python面向对象的高级特性
  3. SQLServer DBA 三十问(加强版)
  4. python web框架哪个好_盘点:9款流行Web框架及其优缺点
  5. [二叉树遍历|BST]leetcode 538 把二叉搜索树转换为累加树
  6. 2013-2017蓝桥杯省赛C++A组真题总结(题型及解法)
  7. 二元偏导数存在的条件_偏导数连续怎么证明
  8. mos管结电容等效模型_【详解各元器件等效电路】电阻、电容、电感、二极管、MOS管!...
  9. oracle pl sql面试题,SQL面试:PL/SQL面试问题和答案大全
  10. 邮件定时发送微博热搜
  11. QTcpServer和QTcpSocket使用详解
  12. pdf.js根据路径里传参数高亮显示关键字(跳转到对应页面)
  13. 计算机技术对艺术的影响,数字化技术对当代艺术发展的影响--理论
  14. Clang调试诊断信息Expressive Diagnostics
  15. 深度理解面向对象的基础-抽象(一)
  16. UE4学习监督——基本动画
  17. media-有声小说工作流详解
  18. 微信会员卡系统如何助力服装店提升业绩(下)
  19. CTO要越过的几道坎儿
  20. 【2020模拟赛day6】A. 数字计数

热门文章

  1. 2PC协议(2-phase-commit protocol)
  2. 搜索引擎设计实用教程(3)-以百度为例
  3. 满分简便解法:1002 写出这个数 (20分)
  4. Pod资源管理(pod容器分类,k8s添加harbor私库,上传下载私库)
  5. MySQL——高阶语句(上)
  6. linux查看信息文件,lsof---Linux查看文件信息的强大工具
  7. php prs4,pr关键帧有什么用
  8. 加分二叉树 java_P1040 加分二叉树
  9. pip 设置超时时间_pip install 超时
  10. jsp页面实现打印 .