/*
交叉类型,在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. Blocks [POJ3734] [矩阵快速幂]

    题意: 有长度为n的一排格子,每个格子里面可以任意填入1,2,3,4四个数字,问1,2都为偶数个的方案 T组数据,每组数据一个n(<=1e9) 样例输入 2 1 2 样例输出 2 6 分析 设d ...

  2. Matlab调用遗传工具箱复现论文模型求解部分

    原文转载自:https://blog.csdn.net/robert_chen1988/article/details/52431594 论文来源: https://www.sciencedirect ...

  3. golang ntp协议客户端

    NTP(Network Time Protocol,网络时间协议)是由RFC 1305定义的时间同步协议,用来在分布式时间服务器和客户端之间进行时间同步.NTP基于UDP报文进行传输,使用的UDP端口 ...

  4. 2018-2019-20175324实验一《Java开发环境的熟悉》实验报告

    2018-2019-20175324实验一<Java开发环境的熟悉>实验报告   实验内容与结果 一.Java开发环境的熟悉-1 1.实验要求: 0 参考实验要求 1 建立“自己学号exp ...

  5. jQuery-day01-介绍 和 选择器获取元素

    1 ,jQuery介绍 1.1,jquery的介绍,javascript库的关系.体验jquery.把js兼容性代码封装在jquery.js中,本身就是一个javascript库. 1.2,jQuer ...

  6. [Educational Round 10][Codeforces 652F. Ants on a Circle]

    题目连接:652F - Ants on a Circle 题目大意:\(n\)个蚂蚁在一个大小为\(m\)的圆上,每个蚂蚁有他的初始位置及初始面向,每个单位时间蚂蚁会朝着当前面向移动一个单位长度,在遇 ...

  7. Httpclient代码

    /// <summary> /// 显示 /// </summary> /// <returns></returns> public ActionRes ...

  8. 05 - json转成树状结构

    var jsonData = eval(`[ {"id":"4","pid":"1","name": ...

  9. Unity进阶----Lua语言知识点(2018/11/08)

    国内开发: 敏捷开发: 集中精力加班堆出来第一个版本 基本没啥大的bug 国外开发: 1).需求分析: 2).讨论 3).分模块 4).框架 5).画UML图(类图class function)(e- ...

  10. week01-绪论

    一.作业题目 仿照三元组或复数的抽象数据类型写出有理数抽象数据类型的描述 (有理数是其分子.分母均为整数且分母不为零的分数).           有理数基本运算: 构造有理数T,元素e1,e2分别被 ...