/*
交叉类型,在TypeScrpt中是很特有的.所以值得认真学习
交叉类型是将多个类型合并为一个类型,这让我们可以把现有的多种类型叠加到一起成为一种
类型
交叉类型同时拥有 Person 和 Employee的成员
*/
let 交叉类型 = <Person & Employee>{}; /*
联合类型,当方法的参数可以是string又可以是number的时候怎么办? 我们想要给方法的调
用者一个明确的提示 所以使用 any ?? 这自然是不对的,因为参数了可以传布尔,使用联合类
型完美解决此问题 Type | Type
*/
function 联合类型(arg: string | number): void | string {
if (typeof arg == "string") {
return arg;
}
} /*
类型保护 因为有可能我们不准确变量的类型,但是知道一个范围
我们可以使用 类型断言 <type> typeof interfaceof
*/ /*
类型别名 给类型起一个别名 type Container<T> = { value: T };
*/ /*
字符串字面量类型 允许我们为 string变量提供必须的固定值 ,也就是字符串的值必须是我
们内定的
*/
type Easing = "A" | "B" | "C";
function fun13(str: Easing) { };
fun13("A"); //这里只可以传 A B C /*
有趣的链式编程来自 多态的this
*/
class BasicCalculator {
public Add(): this {
return this;
};
public multiply(): this {
return this;
};
public Abs(): this {
return this;
};
}
let bc = new BasicCalculator();
bc.Add().Abs().multiply(); /*
Symbol 自Es6起 symbol成为了一个新的原生类型,就像stirng、number一样
symbol类型的值是通过symbol构造函数创建的,且symbol是不可改变且唯一的
-- 不知道为什么在vs2015里无法使用
*/ /*
迭代器
for in 拿到的是下标
for of 拿到的是值
*/ for (let i in array) { };
for (let i of array) { };

TypeScript 素描 - 高级类型、迭代器的更多相关文章

  1. TypeScript 素描-基础类型

    博文读自 TypeScript 官方文档而来,不具有学习性,仅是本人学习时记录以供日后翻阅 ,有学习TypeScript的朋友还请去看更为详细的官方文档 TypeScript官网文档中的基础类型, T ...

  2. TypeScript入门-高级类型

    高级类型 交叉类型 交叉类型,就是将多个类型合并为一个新的类型,这个新的类型具有这多个类型的成员,含有这几个类型的所有特性,是他们的综合体,像是集合的并集 例子: function extend< ...

  3. 为vue3.0学点typescript, 解读高级类型

    知识点摘要 本节课主要关键词为: 自动类型推断 / 类型断言 / 类型别名(type) / 映射类型(Pick/Record等...) / 条件类型(extends) / 类型推断(infer) 自动 ...

  4. TypeScript 之 基础类型、高级类型

    基础类型:https://m.runoob.com/manual/gitbook/TypeScript/_book/doc/handbook/Basic%20Types.html 高级类型:https ...

  5. C# vs TypeScript - 高级类型

    总目录 从C#到TypeScript - 类型 从C#到TypeScript - 高级类型 从C#到TypeScript - 变量 从C#到TypeScript - 接口 从C#到TypeScript ...

  6. 从C#到TypeScript - 高级类型

    C# vs TypeScript - 高级类型 上一篇讲了基础类型,基本上用基础类型足够开发了,不过如果要更高效的开发,还是要看下高级类型,这篇和C#共同点并不多,只是延用这个主题. 联合类型 可以从 ...

  7. Typescript高级类型与泛型难点详解

    最近做的TS分享,到了高级类型这一块.通过琢磨和实验还是挖掘出了一些深层的东西,在此处做一下记录,也分享给各位热爱前端的小伙伴.   其实在学习TS之前就要明确以下几点:   1. typescrip ...

  8. typescript枚举,类型推论,类型兼容性,高级类型,Symbols(学习笔记非干货)

    枚举部分 Enumeration part 使用枚举我们可以定义一些有名字的数字常量. 枚举通过 enum关键字来定义. Using enumerations, we can define some ...

  9. TypeScript完全解读(26课时)_12.TypeScript完全解读-高级类型(1)

    12.TypeScript完全解读-高级类型(1) 高级类型中文网的地址:https://typescript.bootcss.com/advanced-types.html 创建新的测试文件 ind ...

随机推荐

  1. linux磁盘满了的处理

    1.查看磁盘使用情况 cd  / df -h 如果 总量Size和Used一样,按就证明磁盘满了 2.查看当前文件下每个文件大小 du -sh * 一层一层去查,就可以查到占用空间最大的那个文件及产生 ...

  2. ntp---时钟同步服务

    NTP--时钟同步服务 地球分为东西十二个区域,共计 24 个时区 格林威治作为全球标准时间即 (GMT 时间 ),东时区以格林威治时区进行加,而西时区则为减. 地球的轨道并非正圆,在加上自转速度逐年 ...

  3. xshell登陆服务器步骤

    Xshell远程连接服务器 打开xshell后找到左上角第一个“文件”点击,弹出来一个下拉框,选择“新建”点击(或者直接按下快捷键“Alt+n”).         点击“新建”之后就会出现下面这样一 ...

  4. laravel 目录权限

    chown -R www:www /data/wwwroot   #变更目录所有者并向下传递 find /data/wwwroot/ -type d -exec chmod 755 {} \;   # ...

  5. linux下tomcat服务器的启动和关闭以及查看实时打印日志

    本页面中的操作都在tomcat的bin目录下 <一> 一般我都是使用: ./shutdom.sh //关闭tomcat ./startup.sh //开启tomcat服务 <二> ...

  6. 将字符串XX,SS以“,”符号进行区分并分别存储在数组中

    public static void main(String[] args) { String str = "EAN_13,1534651"; String strs[] = st ...

  7. vscode设置

    通过ctrl+滚轮实现字体大小改变:在文件-->首选项-->设置-->用户设置中添加如下代码:"editor.mouseWheelZoom": true,

  8. 多选ui实现单选效果

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. 实战深度学习OpenCV(二):读取并播放本地或者摄像头的视频

    一.读取并播放的代码如下: #include "pch.h" #include <iostream> #include <opencv2/core/core.hp ...

  10. 利用redis + lua解决抢红包高并发的问题

    抢红包的需求分析 抢红包的场景有点像秒杀,但是要比秒杀简单点.因为秒杀通常要和库存相关.而抢红包则可以允许有些红包没有被抢到,因为发红包的人不会有损失,没抢完的钱再退回给发红包的人即可.另外像小米这样 ...