TypeScript 多场景设计方案及应用实践多场景开发实践 Best practices of TypeScript and Dev in Alibaba TypeScript 陈仲寅(花名:张挺) 就职于 阿⾥里里巴巴淘宝技术部 MidwayJS 团队 zhangting@taobao.com @czy88840616 https://github.com/czy88840616 @czy88840616 MidwayJS TS 第⼀一代设计 第⼀一代设计 TS 解决复杂度问题 尝试引⼊入 IoC 解决复杂业务的问题 TS 配置 很早就开始使⽤用 ioc 注⼊入的⽅方式,苦于 js ⼀一 直没有很好的实践产品。 使⽤用描述⽂文件创建实例例(xml) TS 配置 使⽤用描述⽂文件创建实例例(xml) TS 升级 使⽤用 inversify 的⾃自动化 优势:简单,功能精简 劣势:满⾜足不不了了⾃自定义的需求(xml) TS 代码重构实践 分离 midway-core,将通⽤用的能⼒力力都放在这层 分离通⽤用层 TS 代码重构实践 1、⾃自扫描注⼊入 ioc 的能⼒力力 2、适配 midway 的请求作⽤用域能⼒力力 3、兼容原有装饰器器的能⼒力力 分离通⽤用层 ⾃自动绑定 装饰器器定义 请求作⽤用域 IoC egg 耦合 Web 装饰器器实现 TS 代码重构实践 1、⾃自扫描注⼊入0 码力 | 95 页 | 8.28 MB | 1 年前3
TypeScript 4.0 使用手册
混入 三斜线指令 JavaScript文件里的类型检查 - 2 - 本文档使用 书栈网 · BookStack.CN 构建 实用工具类型 如何书写声明文件 介绍 库结构 举例 最佳实践 深入 模板 发布 使用 工程配置 tsconfig.json 工程引用 NPM包的类型 编译选项 配置 Watch 在MSBuild里使用编译选项 与其它构建工具整合 使用TypeScript的每日构建版本 JavaScript文件里的类型检查 实用工具类型 如何书写声明文件 介绍 目录 README - 8 - 本文档使用 书栈网 · BookStack.CN 构建 库结构 举例 最佳实践 深入 模板 发布 使用 工程配置 tsconfig.json 工程引用 NPM包的类型 编译选项 配置 Watch 在MSBuild里使用编译选项 与其它构建工具整合 使用TypeScript的每日构建版本 命名空间和模块 模块解析 声明合并 JSX Decorators 混入 三斜线指令 JavaScript文件里的类型检查 实用工具类型 如何书写声明文件 介绍 库结构 举例 最佳实践 深入 模板 发布 使用 工程配置 tsconfig.json 工程引用 NPM包的类型 编译选项 配置 Watch 在MSBuild里使用编译选项 与其它构建工具整合 使用TypeScript的每日构建版本0 码力 | 683 页 | 6.27 MB | 1 年前3
Hello 算法 1.1.0 TypeScript版受《动手学深度学习》的启发。在此向各位读者强烈推荐这 本优秀的著作。 衷心感谢我的父母,正是你们一直以来的支持与鼓励,让我有机会做这件富有趣味的事。 0.2 如何使用本书 Tip 为了获得最佳的阅读体验,建议你通读本节内容。 0.2.1 行文风格约定 ‧ 标题后标注 * 的是选读章节,内容相对困难。如果你的时间有限,可以先跳过。 ‧ 专业术语会使用黑体(纸质版和 PDF 版)或添加 要通过动画以图解形式展示,而文字则作为解释与补充。 如果你在阅读本书时,发现某段内容提供了如图 0‑2 所示的动画图解,请以图为主、以文字为辅,综合两者 来理解内容。 图 0‑2 动画图解示例 0.2.3 在代码实践中加深理解 本书的配套代码托管在 GitHub 仓库。如图 0‑3 所示,源代码附有测试样例,可一键运行。 如果时间允许,建议你参照代码自行敲一遍。如果学习时间有限,请至少通读并运行所有代码。 了该领域的大部分主题。 ‧ 对于算法新手,在初学阶段阅读一本入门书至关重要,可以少走许多弯路。 ‧ 书中的动画图解通常用于介绍重点和难点知识。阅读本书时,应给予这些内容更多关注。 ‧ 实践乃学习编程之最佳途径。强烈建议运行源代码并亲自敲代码。 ‧ 本书网页版的每个章节都设有评论区,欢迎随时分享你的疑惑与见解。 10 第 1 章 初识算法 Abstract 一位少女翩翩起舞,与数据交织在一起,裙摆上飘扬着算法的旋律。0 码力 | 383 页 | 18.49 MB | 1 年前3
Hello 算法 1.2.0 简体中文 TypeScript 版受《动手学深度学习》的启发。在此向各位读者强烈推荐这 本优秀的著作。 衷心感谢我的父母,正是你们一直以来的支持与鼓励,让我有机会做这件富有趣味的事。 0.2 如何使用本书 Tip 为了获得最佳的阅读体验,建议你通读本节内容。 0.2.1 行文风格约定 ‧ 标题后标注 * 的是选读章节,内容相对困难。如果你的时间有限,可以先跳过。 ‧ 专业术语会使用黑体(纸质版和 PDF 版)或添加 要通过动画以图解形式展示,而文字则作为解释与补充。 如果你在阅读本书时,发现某段内容提供了如图 0‑2 所示的动画图解,请以图为主、以文字为辅,综合两者 来理解内容。 图 0‑2 动画图解示例 0.2.3 在代码实践中加深理解 本书的配套代码托管在 GitHub 仓库。如图 0‑3 所示,源代码附有测试样例,可一键运行。 如果时间允许,建议你参照代码自行敲一遍。如果学习时间有限,请至少通读并运行所有代码。 了该领域的大部分主题。 ‧ 对于算法新手,在初学阶段阅读一本入门书至关重要,可以少走许多弯路。 ‧ 书中的动画图解通常用于介绍重点和难点知识。阅读本书时,应给予这些内容更多关注。 ‧ 实践乃学习编程之最佳途径。强烈建议运行源代码并亲自敲代码。 ‧ 本书网页版的每个章节都设有评论区,欢迎随时分享你的疑惑与见解。 10 第 1 章 初识算法 Abstract 一位少女翩翩起舞,与数据交织在一起,裙摆上飘扬着算法的旋律。0 码力 | 383 页 | 18.49 MB | 10 月前3
Hello 算法 1.0.0b1 TypeScript 版内容的正确性与质量,感谢前辈们的精彩创作! 感谢父母,你们一贯的支持与鼓励给了我自由度来做这些有趣的事。 0. 写在前面 hello‑algo.com 3 0.2. 如何使用本书 建议通读本节内容,以获取最佳阅读体验。 0.2.1. 算法学习路线 总体上看,我认为可将学习数据结构与算法的过程分为三个阶段。 1. 算法入门。熟悉各种数据结构的特点、用法,学习各种算法的原理、流程、用途、效率等。 2 与补充。 阅读本书时,若发现某段内容提供了动画或图解,建议你以图为主线,将文字内容(一般在图的上方)对齐到 图中内容,综合来理解。 Figure 0‑3. 动画图解示例 0.2.4. 在代码实践中加深理解 本书的配套代码托管在GitHub 仓库,源代码包含详细注释,配有测试样例,可以直接运行。 ‧ 若学习时间紧张,建议至少将所有代码通读并运行一遍。 ‧ 若时间允许,强烈建议对照着代码 ,覆盖了该领域的大部分主题。 ‧ 对于算法小白,在初学阶段阅读一本入门书是非常有必要的,可以少走许多弯路。 ‧ 书内的动画和图解往往介绍的是重点和难点知识,在阅读时应该多加关注。 ‧ 实践是学习编程的最佳方式,强烈推荐运行源代码,动手敲代码。 ‧ 本书提供了讨论区,遇到疑惑可以随时提问。 8 1. 引言 1.1. 算法无处不在 听到“算法”这个词,我们一般会联想到数学。但实际上,大0 码力 | 186 页 | 14.71 MB | 1 年前3
Hello 算法 1.0.0b5 TypeScript 版本书倡导手脑并用的学习方式,在这一点上深受《动手学深度学习》的启发。在此向各位读者强烈推荐这本 优秀著作。 衷心感谢我的父母,正是你们一直以来的支持与鼓励,让我有机会做这件富有趣味的事。 0.2 如何使用本书 � 为了获得最佳的阅读体验,建议您通读本节内容。 第 0 章 前言 hello‑algo.com 4 0.2.1 行文风格约定 ‧ 标题后标注 * 的是选读章节,内容相对困难。如果你的时间有限,建议可以先跳过。 如果你在阅读本书时,发现某段内容提供了图 0‑2 所示的动画或图解,请以图为主、以文字为辅,综合两者 来理解内容。 图 0‑2 动画图解示例 第 0 章 前言 hello‑algo.com 5 0.2.3 在代码实践中加深理解 本书的配套代码被托管在 GitHub 仓库。如图 0‑3 所示,源代码附有测试样例,可一键运行。 如果时间允许,建议你参照代码自行敲一遍。如果学习时间有限,请至少通读并运行所有代码。 领域的大部分主题。 ‧ 对于算法新手,在初学阶段阅读一本入门书籍至关重要,可以少走许多弯路。 ‧ 书内的动画和图解通常用于介绍重点和难点知识。阅读本书时,应给予这些内容更多关注。 ‧ 实践乃学习编程之最佳途径。强烈建议运行源代码并亲自敲打代码。 ‧ 本书网页版的每个章节都设有讨论区,欢迎随时分享你的疑惑与见解。 9 第 1 章 初识算法 � 一位少女翩翩起舞,与数据交织在一起,裙摆上飘扬着算法的旋律。0 码力 | 378 页 | 30.70 MB | 1 年前3
Hello 算法 1.2.0 繁体中文 TypeScript 版10.3 二分搜尋邊界 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 10.4 雜湊最佳化策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 10.5 重識搜尋演算法 . . . 受《動手學深度學習》的啟發。在此向各位讀者強烈推薦這 本優秀的著作。 衷心感謝我的父母,正是你們一直以來的支持與鼓勵,讓我有機會做這件富有趣味的事。 0.2 如何使用本書 Tip 為了獲得最佳的閱讀體驗,建議你通讀本節內容。 0.2.1 行文風格約定 ‧ 標題後標註 * 的是選讀章節,內容相對困難。如果你的時間有限,可以先跳過。 ‧ 專業術語會使用黑體(紙質版和 PDF 版)或新增 分主題。 ‧ 對於演算法新手,在初學階段閱讀一本入門書至關重要,可以少走許多彎路。 ‧ 書中的動畫圖解通常用於介紹重點和難點知識。閱讀本書時,應給予這些內容更多關注。 ‧ 實踐乃學習程式設計之最佳途徑。強烈建議執行源程式碼並親自敲程式碼。 ‧ 本書網頁版的每個章節都設有評論區,歡迎隨時分享你的疑惑與見解。 10 第 1 章 初識演算法 Abstract 一位少女翩翩起舞,與資料交織在一起,裙襬上飄揚著演算法的旋律。0 码力 | 384 页 | 18.80 MB | 10 月前3
TypeScript Handbook(中文版)
equal(lhs: T, rhs: T): boolean { return lhs === rhs; } // 之前没有错误 // 现在会报错:在string和number之前没有最佳的基本类型 var e = equal(42, 'hello'); 通过联合类型,你可以指定你想要的行为,在函数定义时或在调用的时候: // 'choose' function where types 绕开这些检查非常简单。 最简便的方法是使用类型断言: let mySquare = createSquare({ width: 100, opacity: 0.5 } as SquareConfig); 然而,最佳的方式是能够添加一个字符串索引签名,前提是你能够确定这个对象可 能具有某些做为特殊用途使用的额外属性。 如果 SquareConfig 带有上面定义的 类型的 color 和 width 变量 x 的类型被推断为数字。 这种推断发生在初始化变量和成员,设置默认参数 值和决定函数返回值时。 大多数情况下,类型推论是直截了当地。 后面的小节,我们会浏览类型推论时的细 微差别。 最佳通用类型 当需要从几个表达式中推断类型时候,会使用这些表达式的类型来推断出一个最合 适的通用类型。例如, let x = [0, 1, null]; 为了推断 x 的类型,我们必须考虑所有元素的类型。 0 码力 | 557 页 | 7.48 MB | 1 年前3
共 8 条
- 1













