TS掘金笔记:https://juejin.cn/post/6872111128135073806    *为疑惑点

类型总结:

2.6.1Enum类型数字枚举设置初始值:

  2.6.1.1给第一个枚举设置初始值,第二个枚举开始根据第一个枚举的初始值自动增长

  

  2.6.1.2给第二个数字枚举设置初始值,第三个枚举开始根据第二个枚举的初始值自动增长,而第一个依然是0

  

  2.6.1.3数字枚举除了支持从成员名称到成员值 的普通映射之外,它还支持从成员值到成员名称 的反向映射

enum Direction {
NORTH,
SOUTH,
EAST,
WEST,
} let dirName = Direction[0]; // NORTH
let dirVal = Direction["NORTH"]; // 0

2.6.4Enum类型异构枚举:

  2.6.4.1Enum类型异构枚举中的字符串枚举的下一个必须是数字枚举,否则报错

   

  类型限制是变量名后进行类型限制,例num:Number(特例1.数组需要描述元素类型和数组,例arr:number[]2.{}不需要添加类型限制,{}则代表一个空对象,不可添加任何属性,但是可以使用原型链方法)

   *2.12object/Object、2.13never

断言总结:

  断言是1变量名前使用尖括号2.变量名 as 类型3非空断言和确定赋值断言在变量名后面(非空断言不可以过滤值为undefined的,例子是对有参数限制的变量进行过滤)

类型守卫总结:

  4.1in:文章例子解析

  4.2*typeof并不会只对"number", "string", "boolean" 或 "symbol"进行保护,尝试对数组也能够进行判断

  

  4.3instanceof判断一个类是否属于另外一个类的子类

 联合类型和类型别名总结:

  5.2.3例子报错解析  

  

交叉类型总结:

  6.1.1尝试发现不管用type(类型别名)和interface是一样的,使用&和|的相同点为属性为并集,但是&为必填项,交叉类型所有的属性都要填,在都填满的状态下相同  

  

  

  6.1.2合并时有同名属性且类型为不同的基本数据类型,如有此情况则该属性的类型为nerve;如为非基础类型则可以成功合并

 TS函数总结:

  7.5可选参数和默认参数

// 可选参数
function createUserId(name: string, id: number, age?: number): string {
return name + id;
} // 默认参数
function createUserId(
name: string = "semlinker",
id: number,
age?: number
): string {
return name + id;
}

  7.7*重载函数

TS接口总结:

  10.2只读属性:赋值给其他变量也不行

let a: number[] = [1, 2, 3, 4];
let ro: ReadonlyArray<number> = a;
ro[0] = 12; // error!
ro.push(5); // error!
ro.length = 100; // error!
a = ro; // error! 赋值给其他变量也不行

  10.3任意属性:例子解析 [ proName:string]

  

  10.4.3extends:type(类型别名)扩展type或者interface使用&;interface扩展type或者interface使用extends

  10.4.4implements:用法介绍

  

  10.4.5接口重复定义:与类型别名不同,接口可以定义多次,会被自动合并为单个接口。

interface Point { x: number; }
interface Point { y: number; } const point: Point = { x: 1, y: 2 };

TS类总结*(使用不熟):

 11.1类的属性与方法:成员和静态的区别

  

  11.2私有变量:#不等于private

  

  11.3访问器:通过 getter 和 setter 方法来实现数据的封装和有效性校验,防止出现异常数据。

  11.4类的继承:

class Animal {
name: string; constructor(theName: string) {
this.name = theName;
} move(distanceInMeters: number = 0) {
console.log(`${this.name} moved ${distanceInMeters}m.`);
}
} class Snake extends Animal {
constructor(name: string) {
super(name); // 调用父类的构造函数
} move(distanceInMeters = 5) {
console.log("Slithering...");
super.move(distanceInMeters);
}
} let sam = new Snake("Sammy the Python"); //Slithering...
sam.move(); //"Sammy the Python moved 5m."
  11.5抽象类:抽象类不能被直接实例化,我们只能实例化实现了所有抽象方法的子类;*构造函数会自动执行赋值(不只是抽象类的构造函数)

  

  11.6类方法重载

TS泛型:

  12.1泛型语法:泛型类似参数,不指定一个类型,而是由调用时传递;T、U可以被任何字母代替,传递给参数使用;调用时可以省略<>,参数类型会默认传递

  

  12.2 *泛型接口:
interface GenericIdentityFn<T> {
(arg: T): T; //()意义不明
}

  12.3

TS补充笔记的更多相关文章

  1. TS 自学笔记(一)

    TS 自学笔记(一) 本文写于 2020 年 5 月 6 日 日常废话两句 有几天没有更新了,最近学的比较乱,休息了两天感觉好一些了.这两天玩了几个设计软件,过几天也写篇文章分享分享. 为啥要学 TS ...

  2. TS 自学笔记(二)装饰器

    TS 自学笔记(二)装饰器 本文写于 2020 年 9 月 15 日 上一篇 TS 文章已经是很久之前了.这次来讲一下 TS 的装饰器. 对于前端而言,装饰器是一个陌生的概念,但是对于 Java.C# ...

  3. TS学习笔记----(一)基础类型

    布尔值: boolean let isDone: boolean = false; 数字: number 和JavaScript一样,TS里的所有数字都是浮点数. 支持十进制和十六进制字面量,TS还支 ...

  4. 分布式计算课程补充笔记 part 4

    ▶ 并行通讯方式: map 映射 全局一到一 全局单元素计算操作 transpose 转置 一到一 单元素位移 gather 收集 多到一 元素搬运不计算 scatter 分散 一到多 元素搬运不计算 ...

  5. 分布式计算课程补充笔记 part 2

    ▶ 并行计算八字原则:负载均衡,通信极小 ▶ 并行计算基本形式:主从并行.流水线并行.工作池并行.功能分解.区域分解.递归分治 ▶ MPI 主要理念:进程 (process):无共享存储:显式消息传递 ...

  6. 《OpenCL异构并行编程实战》补充笔记散点,第一至四章

    ▶ 总体印象:适合 OpenCL 入门的书,有丰富的代码和说明,例子较为简单.先把 OpenCL 代码的基本结构(平台 → 设备 → 上下文 → 命令队列 → 创建缓冲区 → 读写缓冲区 → 编译代码 ...

  7. ts 学习笔记-基础篇

    目录 基础 原始数据类型 布尔值 数字 字符串 空值 Null 和 Undefined 任意值 类型推论 联合类型 接口 数组 函数 类型断言 申明文件 什么是申明文件 三斜线指令 第三方声明文件 内 ...

  8. TS基础笔记

    TS优势 更好的错误的提示,开发中及时发现问题:编辑器语法提示更完善:类型声明可以看出数据结构的语义,可读性更好; TS环境搭建 1.安装node;2.npm install typescript@3 ...

  9. TS学习笔记

    类型 类型 例子 描述 number 1,2,-2 任意数字 string 'hi',"hi" 任意字符串 boolean true,false 布尔值或者true false 字 ...

  10. 关于帧中继和ppp的补充笔记

    帧中继: · 两个设备都要启用 帧中继功能, 否则是不能 ping通的 · 两个设备上的接口serial要 no shutdown · · 一定要配置dlci地址(号). 否则就不能起来pvc 可以 ...

随机推荐

  1. bat想要写一个卸载软件的脚本,最后宣布失败[未完待续...]

    find 的用法:双引号,搜索内容是英文也要用双引号 C:\Users\clouder\Desktop\yanna>find '小智' products.txt FIND: 参数格式不正确 C: ...

  2. orw入门报告

    orw(沙箱逃逸) 现在有很多程序在运行时禁用了系统函数,均采用了沙箱技术开启了沙箱保护,我们不能正常的get shell,只能用ROP链来调用其他的函数,例如read,write来把flag打印出来 ...

  3. NOIP2022 总结

    \(\text{summary}\) 怎么都没想到这次题目那么有新意:把这样的题 \(T2\) 放 \(T2\)...... 策略出现很大问题,赛后也意识到很多选手也会出现同样的问题:死磕 \(T2\ ...

  4. LG P5043 树同构

    \(\text{problem}\) 无根树同构的判断 \(\text{Analysis}\) 考虑树哈希,注意使用较正确的哈希方法 无根树同构有个性质 只要判断以这两棵树的重心为根是否同构即可 \( ...

  5. SpringBoot 面试问答总结(VIP典藏版),最详细!全面!爆肝!

    最详细的SpringBoot面试问题干货,点赞收藏慢慢看 1.SpringBoot 面试问答总结 Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主 ...

  6. 问题记录——nginx加载lua 模块,启动报错找不到 libluajit-5.1.so.2

    环境:SUSE 12 SP3 问题说明:根据工作需求,重新编译nginx加载 lua 模块后启动报错如下: 首先是尝试在 /etc/profile 配置文件中添加环境变量并 source /etc/p ...

  7. 四种语言刷算法之删除链表的倒数第 N 个结点

    力扣19. 删除链表的倒数第 N 个结点 1.C /**  * Definition for singly-linked list.  * struct ListNode {  *     int v ...

  8. 2023 年 CCF 春季测试赛模拟赛 - 1

    T1 个人思路: 询问:求 \(1\) 到 \(t_i\) 路径上离 \(1\) 最远的 \(p\),使得 \(dis_{1,p} \times 2 \le d_i\).即 \(dis_{1,t} \ ...

  9. Docker中使用Nginx镜像配置HTTPS和HTTP强制使用HTTPS访问(4)

    一.前言 上一文章当中说了Docker-Compose管理镜像和容器,本文章介绍使用Docker中Nginx镜像,使用的工具和ubuntu版本在ASP.NET CORE部署在Docker容器中已详细说 ...

  10. 最全面 think php 实现微信公众号回复编号进行投票,自定义菜单功能

    前期准备工作 https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Receiving_standard_messag ...