首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

【TS 演化史 -- 13】字符串枚举 和 弱类型(Weak Type)探测

字符串枚举 TypeScript 2.4 实现了最受欢迎特性之一:字符串枚举,或者更精确地说,带有字符串成员枚举。...现在可以字符串分配给枚举成员了: enum MediaTypes { JSON = 'application/json', XML = 'application/xml' } 字符串枚举可以像...字符串枚举成员没有反向映射 TypeScript 为每个构造映射对象枚举发出一些映射代码。...对于字符串枚举成员,此映射对象定义从映射,反之则不是: var MediaTypes; (function (MediaTypes) { MediaTypes["JSON"] = "application...为了避免生成枚举映射代码开销,咱们可以通过const修饰符添加到声明中,MediaTypes枚举换为const枚举: const enum MediaTypes { JSON = "application

1.6K10

Web前端面试敲重点知识,14个TypeScript核心基础面试题和答案

直到现在,它还没有提供用于构建大型项目的工具和结构,例如类、模块和接口 ,而TypeScript一开始 设计目标是为开发大型应用而生,因此现在很多企业都开始TS了,主流Vue框架底层都是使用 TypeScript...10、说说枚举TypeScript 中是如何工作 ? 11、什么是参数解构 ?...TypeScript 具有三种常用基本类型:字符串、数字和布尔,这些对应于 JavaScript 中类似命名类型。...any类型允许你任何类型分配给 any 类型变量 image.png 5、什么是void,什么时候使用void类型 ?...它们类似于数组,有时也称为关联数组 但是,数组使用数字来索引,而对象允许使用任何其他类型作为 image.png 9、如何在 TypeScript 中指定可选属性 ? 通过添加 ?

11.4K10

TypeScript基础常用知识点总结

一.TypeScript简介 虽然简介这一部分可能有人会觉得没必要,但是我觉得还是有必要简单写一下。我们以后既然要经常用它,当然得从认识它开始啦!不想看就往下滑咯。...TypeScript增加功能: 类型批注和编译时类型检查、类型推断、接口枚举、Mixin、泛型编程、元组、Await、类、模块、lambda 函数箭头语法、可选参数以及默认参数等。...toString() 把数组转换为字符串,并返回结果。 unshift() 向数组开头添加一个或更多元素,并返回新长度。...TypeScript—Map对象 Map 对象保存键值对,并且能够记住原始插入顺序。任何(对象或者原始) 都可以作为一个或一个。...interface RunOptions { program:string; commandline:string[]|string; } 接口和数组 接口中我们可以数组索引和元素设置为不同类型

4.8K30

TypeScript 演化史 — 第七章】映射类型和更好字面量类型推断

keyof T T 类型所有属性名表示为字符串字面量类型联合。 方括号中 in 关键字表示我们正在处理映射类型。...[P in keyof T]: T[P]表示 T类型每个属性 P 类型转换为 T[P]。如果没有readonly修饰符,这将是一个身份转换。...更好字面量类型推断 字符串、数字和布尔字面量类型(如:"abc",1和true)之前仅在存在显式类型注释时才被推断。从 TypeScript 2.1 开始,字面量类型总是推断为默认。...它们是用一个字面量字符串初始化,但是以后可以修改它们。...to parameter of type '"GET" | "POST"' 当然,如果相应参数只允许两个特定字符串,则不允许任意字符串作为函数参数传递。

3.7K40

掌握 TypeScript:20 个提高代码质量最佳实践

这意味着,如果你声明一个变量为字符串类型,TypeScript 确保分配给该变量确实是字符串而不是数字,例如。这有助于您及早发现错误,并确保您代码按照预期工作。...例如,在以下代码片段中,TypeScript 会自动推断 name 变量类型为字符串: let name = "John"; 类型推断在处理复杂类型或变量初始化为从函数返回时特别有用。...这意味着,当你一个对象分配给带有接口类型变量时,TypeScript 会检查对象是否具有接口中指定所有属性和方法。...最佳实践11:使用枚举 枚举(Enums)是 TypeScript 中定义一组命名常量一种方式。它们可以用于创建更具可读性和可维护性代码,通过给一组相关赋予有意义名称。...} let orderStatus: OrderStatus = OrderStatus.Pending; 枚举还可以有自定义一组数字字符串: enum OrderStatus { Pending

3.9K30

编写高质量可维护代码:Awesome TypeScript

// 包括 数字枚举字符串枚举、异构枚举(数字和字符串混合)。...// 数字枚举在不设置默认情况下,默认第一个为0,其他依次自增长 enum STATUS { PENDING, PROCESS, COMPLETED, } let...,常见泛型变量如下: T(Type):表示一个 TypeScript 类型 K(Key):表示对象中类型 V(Value):表示对象中类型 E(Element):表示元素类型 交叉类型 交叉类型就是多个类型合并为一个类型...TypeScript Hero:对 import 引入模块顺序进行排序和组织 ,移除未被使用。MacOS 上快捷 Ctrl+Opt+o,Win/Linux 上快捷 Ctrl+Alt+o。...json2ts:剪切板中 JSON 转化成 TypeScript 接口。MacOS 上快捷 Ctrl+Opt+V,Win/Linux 上快捷 Ctrl+Alt+V。

2.4K10

TypeScript 演化史 -- 7】映射类型和更好字面量类型推断

[P in keyof T]: T[P]表示 T类型每个属性 P 类型转换为 T[P]。如果没有readonly修饰符,这将是一个身份转换。...更好字面量类型推断 字符串、数字和布尔字面量类型(如:"abc",1和true)之前仅在存在显式类型注释时才被推断。从 TypeScript 2.1 开始,字面量类型总是推断为默认。...字符串字面量扩展类型是 string,数字字面量扩展类型是number,true 或 false 字面量类型是 boolean,还有枚举字面量扩展类型是枚举。...它们是用一个字面量字符串初始化,但是以后可以修改它们。...to parameter of type '"GET" | "POST"' 当然,如果相应参数只允许两个特定字符串,则不允许任意字符串作为函数参数传递。

2.8K10

1.8W字|了不起 TypeScript 入门教程(第二版)

使用枚举可以清晰地表达意图或创建一组有区别的用例。 TypeScript 支持数字和基于字符串枚举。...在一个字符串枚举里,每个成员都必须用字符串字面量,或另外一个字符串枚举成员进行初始化。...而数字枚举如果没有显式设置时,则会使用默认规则进行初始化。 3.常量枚举 除了数字枚举字符串枚举之外,还有一种特殊枚举 —— 常量枚举。...其中原因就是当使用数值索引时,JavaScript 在执行索引操作时,会先把数值索引先转换为字符串索引。...16.6 TypeDoc 简介:TypeDoc 用于 TypeScript 源代码中注释转换为 HTML 文档或 JSON 模型。它可灵活扩展,并支持多种配置。

10K51

TypeScript超详细入门教程(上)

本小节我们接触几个TypeScript中引入新类型,这里面可能有你在其他强类型语言中见过概念,接下来让我们一起来学习。...上添加一个就相当于你在当前页面定义一个全局变量一样,我们看到,在iframe 中定义为’lison’ symbol 在和在当前页面定义为’lison’ symbol 相等,说明它们是同一个...字符串枚举 TypeScript2.4 版本新增了字符串枚举字符串枚举要求每个字段都必须是字符串字面量,或者是该枚举中另一个字符串枚举成员,先来看个简单例子: enum Message...因为往往我们一类整理为一个枚举时候,它们特点是相似的。...小结 本小节我们学习了两种基本枚举:数字枚举字符串枚举,它俩最主要区别就是枚举成员类型了,数字枚举成员必须都是数值类型,而字符串枚举成员必须都是字符串

4.1K41

如何在 TypeScript 中为对象动态添加属性?

具体来说,我们可以使用以下语法来定义一个具有索引签名类型:interface MyObject { [key: string]: any;}在这个类型定义中,[key: string] 表示对象可以是任何字符串...需要注意是,使用索引签名添加属性存在一些潜在问题。首先,由于索引签名允许任何字符串作为,因此我们无法保证添加属性名是否正确。...其次,由于类型是 any,因此 TypeScript 编译器无法对属性类型做出任何保证。这可能导致类型错误和运行时错误。方法二:使用类型断言另一种动态添加属性方法是使用类型断言。...这意味着如果你在新属性中包含对象,则该对象引用仍然指向原始对象,这可能会导致副作用和意外行为。...需要注意是,我们可以 any 替换为具体类型,以便在编译时进行类型检查。使用接口定义类型好处是,它能够在编译时进行类型检查,从而避免了类型错误和运行时错误。

8.5K20

TS 从 0 到 1 - 泛型

设计泛型关键目的是在成员之间提供有意义约束,这些成员可以是:类实例成员、类方法、函数参数、函数返回。 泛型是允许同一个函数接受不同类型参数一种模板。...K(Key):表示对象中类型 V(Value):表示对象中类型 E(Element):表示元素类型 不只能定义一个类型变量,可以引入希望定义任何数量类型变量。...StringArray1 { [index: number]: string; // 数字索引 keyof StringArray1 => number } 为了同时支持两种索引类型,要求数字索引返回必须是字符串索引返回子类...原因是当使用数值索引时,JavaScript 在执行索引操作时,会先把数值索引先转换为字符串索引。...doesn't have a .length property loggingIdentity({ length: 10, value: 3 }); // OK # Partial Partial 作用就是某个类型里属性全部变为可选项

37310

《现代Typescript高级教程》枚举和泛型

现代JavaScript高级小册 深入浅出Dart 现代TypeScript高级小册 枚举和泛型 接下来我们学习TypeScript两个重要主题:枚举(Enums)和泛型(Generics)。...Up 初始为 1,其余成员会自动递增。...支持数字和字符串混用枚举,这种类型枚举被称为异构枚举: enum BooleanLikeHeterogeneousEnum { No = 0, Yes = "YES", } 尽管...TypeScript 支持这种用法,但我们在实际项目中应尽可能避免使用异构枚举,因为这会引入不必要复杂性。...通过在函数调用时显式指定类型参数为number,我们可以42传递给identity函数并推断出结果类型为number。 2. 接口泛型 接口泛型允许我们创建可适用于不同类型接口定义。

16610

TypeScript 5.0 正式发布!

,它赋予每个枚举成员自己类型,并将枚举本身转换为每个成员类型联合。...在某些情况下,这个是不可能计算出来——例如,枚举成员可以通过函数调用进行初始化。...TypeScript 5.0 通过为每个计算成员创建唯一类型,设法所有枚举换为联合枚举。这意味着现在可以缩小所有枚举范围,并将其成员作为类型引用。...在信息序列化为字符串时,执行了一些缓存。类型显示可能作为错误报告、声明触发、代码补全等一部分发生,最终可能会相当昂贵。TypeScript 现在缓存了一些常用机制以在这些操作中重用。...lib.d.ts 变化 更改 DOM 类型生成方式可能会对现有代码产生影响。注意,某些属性已从数字转换为数字字面量类型,并且用于剪切、复制和粘贴事件处理属性和方法已跨接口移动。

3.7K70

细数这些年被困扰过 TS 问题

然而现在学习 TypeScript 小伙伴越来越多了,本文阿宝哥分享这些年在学习 TypeScript 过程中,曾被困扰过一些 TS 问题,希望本文对学习 TypeScript 小伙伴能有一些帮助...数字枚举字符串枚举之间有什么区别 8.1 数字枚举 在 JavaScript 中布尔类型变量含有有限范围,即 true 和 false。...如果枚举中某个成员使用显式方式赋值,但后续成员未显示赋值, TypeScript 会基于当前成员加 1 作为后续成员。...8.2 字符串枚举 除了数字枚举,我们还可以使用字符串作为枚举成员: enum NoYes { No = 'No', Yes = 'Yes', } assert.equal(NoYes.No...另外,对于纯字符串枚举,我们不能省略任何初始化程序。而数字枚举如果没有显式设置时,则会使用默认进行初始化。

15K73
领券