TS 基础知识(二)

文档地址

高级类型

    1 交叉类型

        交叉类型是将 多个类型合并为一个类型, 也就是 几种类型之和

        它把现有的多种类型叠加到一起成为一种类型,它包含了所需的所有类型的特性

交叉类型

    2 联合类型

        联合类型表示一个值可以是 几种类型之一,用竖线( | )分隔每个类型;

联合类型
联合类型

        如果一个值是联合类型,我们 只能 访问此联合类型的所有类型里 共有的成员

只能 访问 共有的成员

    3 类型保护

       类型保护就是一些表达式,它们会在运行时检查以确保在某个作用域里的类型。

        类型谓词

   类型谓词

         pet is Fish 就是类型谓词。 谓词为 parameterName is Type 这种形式, parameterName 必须是来自于当前函数签名里的一个参数名

        typeof 类型保护

                这些* typeof 类型保护*只有两种形式能被识别: typeof v === "typename"和 typeof v !== "typename", "typename" 必须是 "number", "string", "boolean" 或 "symbol"。 但是TypeScript并不会阻止你与其它字符串比较,语言不会把那些表达式识别为类型保护。

        instanceof 类型保护

instanceof 类型保护

可以为null的类型

    类型检查器认为 null 与 undefined 可以赋值给任何类型;   

    null 和 undefined 是 所有类型的子类型。 就是说可以把 null 和 undefined 赋值给 任何类型的变量。

    由于可以为 null 的类型是通过联合类型实现,那么你需要使用类型保护来去除 null;

类型保护

    如果编译器不能够去除 null 或 undefined,可以使用类型断言手动去除。 语法是添加 !后缀: identifier! 从 identifier 的类型里去除了 null和 undefined, 可以手动保证它不是 null 或者  undefined

类型断言

字符串字面量类型

        字符串字面量类型允许你指定字符串必须的 固定值。 在实际应用中,字符串字面量类型可以与联合类型类型保护类型别名 很好的配合。 通过结合使用这些特性,你可以实现 类似枚举类型的字符串

字符串字面量类型

索引类型

    索引类型查询操作符 keyof

索引类型查询操作符

     索引访问操作符

            getProperty 里的 o: T 和 name: K,意味着 o[name]: T[K]。 当你返回 T[K] 的结果,编译器会实例化键的真实类型,因此 getProperty 的返回值类型会随着你需要的属性改变;

              person['name']具有类型 Person['name'] — 例子里则为 string 类型

 索引访问操作符

    索引类型 和 字符串索引签名

        keyof 和 T[K] 与字符串索引签名进行交互。 如果你有一个带有字符串索引签名的类型,那么 keyof T会是 string。 并且 T[string] 为索引签名的类型:

 索引类型和字符串索引签名
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,716评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,558评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,431评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,127评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,511评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,692评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,915评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,664评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,412评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,616评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,105评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,424评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,098评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,096评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,869评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,748评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,641评论 2 271

推荐阅读更多精彩内容

  • #前端基础 # ## JavaScript基础 ## ###渲染机制与变量 ### script代码为什么放到bo...
    hmg阅读 218评论 1 1
  • js的命名规范 1、.JS中严格区分大小写 2、命名的时候可以使用$、_、数字、字母,但是数字不能作为名字的第一位...
    筱贰_梁阅读 278评论 0 0
  • 第四章 变量、作用域和内存问题 基本类型和引用类型的值 ECMAScript 变量可能包含两种不同数据类型的值:基...
    北风吹_yfy阅读 311评论 0 1
  • 注:本文所有知识点总结或摘抄自廖雪峰javascript教程,点击查看更详细的讲解。 1.javascript简介...
    hanyuntao阅读 509评论 0 13
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 5,980评论 0 4