TypeScript 多场景设计方案及应用实践场景,⽽而淘宝有不不少全栈场景 class ⽤用法,⽆无法多继承 TS 杂糅的 app/ctx 合并机制 体验不不同 Egg 解决的是 BFF 场景,⽽而淘宝有不不少全栈场景 TS 第⼀一代设计 第⼀一代设计 TS 解决复杂度问题 尝试引⼊入 IoC 解决复杂业务的问题 TS 配置 很早就开始使⽤用 ioc 注⼊入的⽅方式,苦于 js ⼀一 直没有很好的实践产品。 使⽤用描述⽂文件创建实例例(xml) class/interface TS 体验 集团中间件缺少描述,补充了了⼤大概 10 ⼏几个类的定义, 这样通过注⼊入就不不需要额外再摸索。 增加接⼝口描述 TS 体验 增加接⼝口描述 TS 第⼆二代设计 第⼆二代设计 TS 解决 Egg.js 体验 虽然服务层的使⽤用已经解决了了,但是和 egg 耦合的部分还是沿⽤用了了 egg 的写法,虽然有 变通的办法,但是需要在体验上更更进⼀一步。 TS @schedule @priority Import { controller } from ‘@midwayjs/decorator’ @func 休息⼀一下 休息⼀一下 TS ⾯面向未来的设计 ⾯面向未来的设计 TS 跨场景的设想 Web场景/⾃自启动场景/更更多⾃自定义场景。 正好碰上了了 Serverless 的浪潮,作为集团唯 ⼀一的 Node.js 架构团队,集团的领航者当仁 不不让的投奔进去。0 码力 | 95 页 | 8.28 MB | 1 年前3
TypeScript Handbook(中文版)
--downlevelIteration 编译选项 TypeScript Handbook(中文版) 107 TypeScript 2.3 之前迭代器只在编译目标为 ES6/ES2015 或者更新版本时可用。此外,设计迭代器 协议的结构,比如 for..of ,如果编译目标低于ES6/ES2015,则只能在操作数 组时被支持。 TypeScript 2.3 在 ES3 和 ES5 为编译目标时由 --downlevelIteration processEntity(e?: Entity) { validateEntity(e); let s = e!.name; // 断言e是非空并访问name属性 } 兼容性 这些新特性是经过设计的,使得它们能够在严格空检查模式和常规类型检查模式下 都能够使用。尤其是在常规类型检查模式中, null 和 undefined 类型会自动从 联合类型中删除(因为它们是其它所有类型的子类型), { readFile } from "myLibrary/fileSystem/readFile`; readFile(); // readFile是'any'类型 支持UMD模块定义 一些库被设计为可以使用多种模块加载器或者不是使用模块加载器(全局变量)来 使用,这被称为UMD或同构模块。这些库可以通过导入或全局变量访问。 举例: math-lib.d.ts export const0 码力 | 557 页 | 7.48 MB | 1 年前3
TypeScript 4.0 使用手册
Greeter 类的一个实例。 它会调用之前定义的构造函数,创建一 个 Greeter 类型的新对象,并执行构造函数初始化它。 在TypeScript里,我们可以使用常用的面向对象模式。 基于类的程序设计中一种最基本的模式是允 许使用继承来扩展现有的类。 类 介绍 类 继承 类 - 120 - 本文档使用 书栈网 · BookStack.CN 构建 看下面的例子: 1. class 在使用基于名义类型的语言,比如C#或Java中,这段代码会报错,因为Person类没有明确说明其实现 了Named接口。 TypeScript的结构性子类型是根据JavaScript代码的典型写法来设计的。 因为JavaScript里广 泛地使用匿名对象,例如函数表达式和对象字面量,所以使用结构类型系统来描述这些类型比使用名义 类型系统更好。 TypeScript的类型系统允许某些在编译阶段 padLeft("Hello world", true); // 编译阶段通过,运行时报错 在传统的面向对象语言里,我们可能会将这两种类型抽象成有层级的类型。 这么做显然是非常清晰 的,但同时也存在了过度设计。 padLeft 原始版本的好处之一是允许我们传入原始类型。 这样做 的话使用起来既简单又方便。 如果我们就是想使用已经存在的函数的话,这种新的方式就不适用了。 代替 any , 我们可以使用_联合类型_做为0 码力 | 683 页 | 6.27 MB | 1 年前3
Hello 算法 1.1.0 TypeScript版感谢腾宝、琦宝、飞宝为本书起了一个富有创意的名字,唤起大家写下第一行代码“Hello World!”的 美好回忆; ‧ 感谢校铨在知识产权方面提供的专业帮助,这对本开源书的完善起到了重要作用; ‧ 感谢苏潼为本书设计了精美的封面和 logo ,并在我的强迫症的驱使下多次耐心修改; ‧ 感谢 @squidfunk 提供的排版建议,以及他开发的开源文档主题 Material‑for‑MkDocs 。 在写作过程 数据结构(data structure)是计算机中组织和存储数据的方式,具有以下设计目标。 ‧ 空间占用尽量少,以节省计算机内存。 第 1 章 初识算法 hello‑algo.com 14 ‧ 数据操作尽可能快速,涵盖数据访问、添加、删除、更新等。 ‧ 提供简洁的数据表示和逻辑信息,以便算法高效运行。 数据结构设计是一个充满权衡的过程。如果想在某方面取得提升,往往需要在另一方面作出妥协。下面举两 复杂度分析犹如浩瀚的算法宇宙中的时空向导。 它带领我们在时间与空间这两个维度上深入探索,寻找更优雅的解决方案。 第 2 章 复杂度分析 hello‑algo.com 18 2.1 算法效率评估 在算法设计中,我们先后追求以下两个层面的目标。 1. 找到问题解法:算法需要在规定的输入范围内可靠地求得问题的正确解。 2. 寻求最优解法:同一个问题可能存在多种解法,我们希望找到尽可能高效的算法。 也0 码力 | 383 页 | 18.49 MB | 1 年前3
Hello 算法 1.0.0b5 TypeScript 版的角度提出许多宝贵建议,使得本书更适合新 手阅读。 ‧ 感谢腾宝、琦宝、飞宝为本书起了一个富有创意的名字,唤起大家写下第一行代码“Hello World!”的 美好回忆。 ‧ 感谢苏潼为本书设计了精美的封面和 LOGO,并在我的强迫症下多次耐心修改。 ‧ 感谢 @squidfunk 提供的写作排版建议,以及他开发的开源文档主题 Material‑for‑MkDocs 。 在写作过程中, 「数据结构 data structure」是计算机中组织和存储数据的方式,具有以下设计目标。 ‧ 空间占用尽量减少,节省计算机内存。 第 1 章 初识算法 hello‑algo.com 13 ‧ 数据操作尽可能快速,涵盖数据访问、添加、删除、更新等。 ‧ 提供简洁的数据表示和逻辑信息,以便使得算法高效运行。 数据结构设计是一个充满权衡的过程。如果想要在某方面取得提升,往往需要在另一方面作出妥协。下面举 复杂度分析犹如浩瀚的算法宇宙中的时空向导。 它带领我们在时间与空间这两个维度上深入探索,寻找更优雅的解决方案。 第 2 章 复杂度分析 hello‑algo.com 17 2.1 算法效率评估 在算法设计中,我们先后追求以下两个层面的目标。 1. 找到问题解法:算法需要在规定的输入范围内,可靠地求得问题的正确解。 2. 寻求最优解法:同一个问题可能存在多种解法,我们希望找到尽可能高效的算法。0 码力 | 378 页 | 30.70 MB | 1 年前3
Hello 算法 1.2.0 简体中文 TypeScript 版感谢腾宝、琦宝、飞宝为本书起了一个富有创意的名字,唤起大家写下第一行代码“Hello World!”的 美好回忆; ‧ 感谢校铨在知识产权方面提供的专业帮助,这对本开源书的完善起到了重要作用; ‧ 感谢苏潼为本书设计了精美的封面和 logo ,并在我的强迫症的驱使下多次耐心修改; ‧ 感谢 @squidfunk 提供的排版建议,以及他开发的开源文档主题 Material‑for‑MkDocs 。 在写作过程 structure)是组织和存储数据的方式,涵盖数据内容、数据之间关系和数据操作方法,它具 有以下设计目标。 第 1 章 初识算法 www.hello‑algo.com 14 ‧ 空间占用尽量少,以节省计算机内存。 ‧ 数据操作尽可能快速,涵盖数据访问、添加、删除、更新等。 ‧ 提供简洁的数据表示和逻辑信息,以便算法高效运行。 数据结构设计是一个充满权衡的过程。如果想在某方面取得提升,往往需要在另一方面作出妥协。下面举两 复杂度分析犹如浩瀚的算法宇宙中的时空向导。 它带领我们在时间与空间这两个维度上深入探索,寻找更优雅的解决方案。 第 2 章 复杂度分析 www.hello‑algo.com 18 2.1 算法效率评估 在算法设计中,我们先后追求以下两个层面的目标。 1. 找到问题解法:算法需要在规定的输入范围内可靠地求得问题的正确解。 2. 寻求最优解法:同一个问题可能存在多种解法,我们希望找到尽可能高效的算法。 也0 码力 | 383 页 | 18.49 MB | 10 月前3
Hello 算法 1.0.0b1 TypeScript 版角提出了许多建议,使这本书更加适合初学 者来阅读。 ‧ 感谢腾宝、琦宝、飞宝为本书起了个好听又有梗名字,直接唤起我最初敲下第一行代码“Hello World!” 的回忆。 ‧ 感谢苏潼为本书设计了封面和 LOGO ,在我的强迫症下前后多次帮忙修改,谢谢你的耐心。 ‧ 感谢 @squidfunk 给出的写作排版建议,以及优秀开源项目 Material‑for‑MkDocs 。 本书鼓励“ Structure」是在计算机中组织与存储数据的方式。为了提高数据存储和操作性能,数据结构 的设计原则有: ‧ 空间占用尽可能小,节省计算机内存。 ‧ 数据操作尽量快,包括数据访问、添加、删除、更新等。 1. 引言 hello‑algo.com 10 ‧ 提供简洁的数据表示和逻辑信息,以便算法高效运行。 数据结构的设计是一个充满权衡的过程,这意味着如果获得某方面的优势,则往往需要在另一方面做出妥协。 结构,拼装积木的流程步骤对应算法。 12 2. 复杂度分析 2.1. 算法效率评估 2.1.1. 算法评价维度 在开始学习算法之前,我们首先要想清楚算法的设计目标是什么,或者说,如何来评判算法的好与坏。整体上 看,我们设计算法时追求两个层面的目标。 1. 找到问题解法。算法需要能够在规定的输入范围下,可靠地求得问题的正确解。 2. 寻求最优解法。同一个问题可能存在多种解法,而我们希望算法效率尽可能的高。0 码力 | 186 页 | 14.71 MB | 1 年前3
TypeScript 类型系统我目前的研究方向 24 目标:基于静态分析寻找脆弱的Node.js代码 需要做的: 1. 改造TypeScript编译器 2. 搭建TypeScript静态分析框架 3. 设计实现基于静态污点分析的漏洞检测技术 4. 设计实现面向Node.js应用的安全测试框架 Q & A0 码力 | 25 页 | 1.27 MB | 1 年前3
TypeScript的发展历程●与新标准有冲突 BuckleScript ●脱胎于OCaml ●类型系统强大 ●编译高度优化 ●语义语法疏远,上手难* Flow Type ●JS+类型标注 ●工具相对完善 ●上手容易 ●与TS设计相似* 比较 类型系统 难度 工具链 CoffeeScript 动态 低 差 BuckleScript 很强 高 较好 FlowType 强 较低 较好 TypeScript 强 低 很好0 码力 | 64 页 | 6.17 MB | 1 年前3
共 9 条
- 1













