TypeScript 字面量类型介绍
发布时间:2023-03-30 08:56:09 所属栏目:教程 来源:
导读:在计算机科学中,字面量(literal)是用于表达源代码中一个固定值的表示法(notation)。
通俗的讲,字面量也可以叫直接量,就是你看见什么,它就是什么。
我们之前介绍字符串类型,其实是一个集合类型,所有的
通俗的讲,字面量也可以叫直接量,就是你看见什么,它就是什么。
我们之前介绍字符串类型,其实是一个集合类型,所有的
在计算机科学中,字面量(literal)是用于表达源代码中一个固定值的表示法(notation)。 通俗的讲,字面量也可以叫直接量,就是你看见什么,它就是什么。 我们之前介绍字符串类型,其实是一个集合类型,所有的字符串集合在一起构成了 string 类型。而字符串字面量类型就直接多了,你定义为 'imooc',那这个变量的类型就是 'imooc' 类型。 字符串字面量类型允许你指定字符串必须的固定值。 let protagonist: 'Sherlock' protagonist = 'Sherlock' protagonist = 'Watson' // Error, Type '"Watson"' is not assignable to type '"Sherlock"' 代码解释: 变量 protagonist 被声明为 'Sherlock' 字面量类型,就只能赋值为 'Sherlock'。 type Easing = 'ease-in' | 'ease-out' | 'ease-in-out' class UIElement { animate(dx: number, dy: number, easing: Easing) { if (easing === 'ease-in') {} else if (easing === 'ease-out') {} else if (easing === 'ease-in-out') {} else { // Error, 不应该传递 null 或 undefined } } } let button = new UIElement() button.animate(, , 'ease-in') button.animate(, , 'uneasy') // Error, 'uneasy' 不被允许 代码解释: 第 1 行,通过类型别名,声明了类型 Easing 为 'ease-in' | 'ease-out' | 'ease-in-out' 这样三个字符串字面量构成的联合类型。 第 4 行,你只能从三种允许的字符中选择其一来做为参数传递,传入其它值则会产生错误。 字符串字面量类型还可以用于区分函数重载: function createElement(tagName: 'img'): HTMLImageElement function createElement(tagName: 'input'): HTMLInputElement function createElement(tagName: string): Element {} 代码解释: 如果参数 tagName 为 'img' 类型,返回值类型为 HTMLImageElement; 如果参数 tagName 为 'input' 类型,返回值类型为 HTMLInputElement。 声明布尔字面量类型,注意这里是 : 不是 =。 = 等号是变量赋值,: 表示声明的类型。 let success: true let fail: false let value: true | false 接口的返回值,会有正确返回和异常两种情况,这两种情况要有不同的数据返回格式: type Result = { success: true, code: number, object: object } | { success: false, code: number, errMsg: string } let res: Result = { success: false, code: , errMsg: '该二维码已使用' } if (!res.success) { res.errMsg // OK res.object // Error, Property 'object' does not exist on type '{ success: false; code: number; errMsg: string; } } 代码解释: 类型别名 Result 是一个由两个对象组成的联合类型,都有一个共同的 success 属性,这个属性的类型就是布尔字面量类型。因为涉及很多后续才会介绍的知识点,这里看不懂没关系,只需要大概了解这是布尔字面量类型的一种应用即可。 TypeScript 还具有数字字面量类型。 比如骰子只有六种点数: let die: | | | | | die = // Error (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |