TypeScript 4.0 使用手册
一个枚举表达式字面量(主要是字符串字面量或数字字面量) ii. 一个对之前定义的常量枚举成员的引用(可以是在不同的枚举类型中定义的) iii. 带括号的常量枚举表达式 iv. 一元运算符 + , - , ~ 其中之一应用在了常量枚举表达式 v. 常量枚举表达式做为二元运算符 + , - , * , / , % , << , >> , >>> , & , | , ^ 的操作对象。 若常量枚举表达式求值后为 "default"; 4. } 5. else { 6. return sn; 7. } 8. } 这里很明显地去除了 null ,你也可以使用短路运算符: 1. function f(sn: string | null): string { 2. return sn || "default"; 3. } 如果编译器不能够去除 null 除了用户定义的symbols,还有一些已经众所周知的内置symbols。 内置symbols用来表示语言内部 的行为。 以下为这些symbols的列表: 方法,会被 instanceof 运算符调用。构造器对象用来识别一个对象是否是其实例。 布尔值,表示当在一个对象上调用 Array.prototype.concat 时,这个对象的数组元素是否可展开。 方法,被 for-of 语句调用。返回对象的默认迭代器。0 码力 | 683 页 | 6.27 MB | 1 年前3
TypeScript Handbook(中文版)
对象有一个返回 Iterator 对象的 Symbol.iterator 方法,那么我们说这个对象 是“可迭代的”。 迭代器协议还定义了一些ES2015中的特性像 for..of 和展开运算符以及解构赋值 中的数组的剩余运算的操作对象。 生成器 ES2015也引入了"生成器",生成器是可以通过 Iterator 接口和 yield 关键字被 用来生成部分运算结果的函数。生成器也可以在内部通过 以下规 则对混合类声明适用: extends 表达式的类型参数类型必须是混合构造函数. 混合类的构造函数 (如果有) 必须有且仅有一个类型为 any[] 的变长参数, 并 且必须使用展开运算符在 super(...args) 调用中将这些参数传递。 假设有类型参数为 T 且约束为 X 的表达式 Bas ,处理混合类 class C extends Base {...} 时会假设 在被标记为 错误: 如果 + 运算符的任何一个操作数是可空的,并且两个操作数都不 是 any 或 string 类型。 如果 - , * , ** , / , % , << , >> , >>> , & , | 或 ^ 运算 符的任何一个操作数是可空的。 如果 < , > , <= , >= 或 in 运算符的任何一个操作数是可空的。 如果 instanceof0 码力 | 557 页 | 7.48 MB | 1 年前3
Hello 算法 1.1.0 TypeScript版性能可能劣化,因此被视为负面属性;而如果最佳时间复杂度优于平均时间复杂度,则被视为正面属性。 是否基于比较:基于比较的排序依赖比较运算符(<、=、>)来判断元素的相对顺序,从而排序整个数组, 理论最优时间复杂度为 ?(? log ?) 。而非比较排序不使用比较运算符,时间复杂度可达 ?(?) ,但其通用性 相对较差。 11.1.2 理想排序算法 运行快、原地、稳定、正向自适应、通用性好。显然 ?? 表的尺寸为 (? + 1) × (??? + 1) 。 第二步:找出最优子结构,进而推导出状态转移方程 本题与完全背包问题的状态转移方程存在以下两点差异。 ‧ 本题要求最小值,因此需将运算符 max() 更改为 min() 。 ‧ 优化主体是硬币数量而非商品价值,因此在选中硬币时执行 +1 即可。 ??[?, ?] = min(??[? − 1, ?], ??[?, ? − ??? 出目标金额,因此使 用 ??? + 1 来表示“无法凑出目标金额”的无效解。 ‧ 零钱兑换问题 II 从求“最少硬币数量”改为求“硬币组合数量”,状态转移方程相应地从 min() 改为 求和运算符。 编辑距离问题 ‧ 编辑距离(Levenshtein 距离)用于衡量两个字符串之间的相似度,其定义为从一个字符串到另一个 字符串的最少编辑步数,编辑操作包括添加、删除、替换。 ‧ 编辑距离问题的状态定义为将0 码力 | 383 页 | 18.49 MB | 1 年前3
Hello 算法 1.0.0b5 TypeScript 版性能可能劣化,因此被视为负面属性;而如果最佳时间复杂度优于平均时间复杂度,则被视为正面属性。 是否基于比较:「基于比较的排序」依赖于比较运算符(<、=、>)来判断元素的相对顺序,从而排序整个 数组,理论最优时间复杂度为 ?(? log ?) 。而「非比较排序」不使用比较运算符,时间复杂度可达 ?(?) , 但其通用性相对较差。 11.1.2 理想排序算法 运行快、原地、稳定、正向自适应、通用性好。 。 第二步:找出最优子结构,进而推导出状态转移方程 第 14 章 动态规划 hello‑algo.com 336 本题与完全背包的状态转移方程存在以下两个差异。 ‧ 本题要求最小值,因此需将运算符 max() 更改为 min() 。 ‧ 优化主体是硬币数量而非商品价值,因此在选中硬币时执行 +1 即可。 ??[?, ?] = min(??[? − 1, ?], ??[?, ? − ??? 。从求“不超过”背包容量到求“恰好”凑出目标金额,因此使用 ??? + 1 来表示“无法凑出目标金额”的无效解。 ‧ 零钱兑换 II 问题从求“最少硬币数量”改为求“硬币组合数量”,状态转移方程相应地从 min() 改为 求和运算符。 编辑距离问题 ‧ 编辑距离(Levenshtein 距离)用于衡量两个字符串之间的相似度,其定义为从一个字符串到另一个 字符串的最小编辑步数,编辑操作包括添加、删除、替换。 ‧ 编辑距离问题的状态定义为将0 码力 | 378 页 | 30.70 MB | 1 年前3
Hello 算法 1.2.0 简体中文 TypeScript 版减少计算量,达到更优的时间效率。自适应排序 算法的最佳时间复杂度通常优于平均时间复杂度。 是否基于比较:基于比较的排序依赖比较运算符(<、=、>)来判断元素的相对顺序,从而排序整个数组, 理论最优时间复杂度为 ?(? log ?) 。而非比较排序不使用比较运算符,时间复杂度可达 ?(?) ,但其通用性 相对较差。 11.1.2 理想排序算法 运行快、原地、稳定、自适应、通用性好。显然, ?? 表的尺寸为 (? + 1) × (??? + 1) 。 第二步:找出最优子结构,进而推导出状态转移方程 本题与完全背包问题的状态转移方程存在以下两点差异。 ‧ 本题要求最小值,因此需将运算符 max() 更改为 min() 。 ‧ 优化主体是硬币数量而非商品价值,因此在选中硬币时执行 +1 即可。 ??[?, ?] = min(??[? − 1, ?], ??[?, ? − ??? 出目标金额,因此使 用 ??? + 1 来表示“无法凑出目标金额”的无效解。 ‧ 零钱兑换问题 II 从求“最少硬币数量”改为求“硬币组合数量”,状态转移方程相应地从 min() 改为 求和运算符。 编辑距离问题 ‧ 编辑距离(Levenshtein 距离)用于衡量两个字符串之间的相似度,其定义为从一个字符串到另一个 字符串的最少编辑步数,编辑操作包括添加、删除、替换。 ‧ 编辑距离问题的状态定义为将0 码力 | 383 页 | 18.49 MB | 10 月前3
TypeScript 类型系统此处shape为Circle类型 TypeScript 泛型编程 19 泛型函数 泛型类 TypeScript 泛型编程 20 条件泛型 TypeScript 泛型编程 21 infer运算符在extends条件语句中表示待推测的类型量 TypeScript 泛型编程 22 其他的Utility Type工具类型…… StaticScript | 仿TypeScript静态类型编程语言0 码力 | 25 页 | 1.27 MB | 1 年前3
共 6 条
- 1













