TypeScript 多场景设计方案及应用实践多场景开发实践 Best practices of TypeScript and Dev in Alibaba TypeScript 陈仲寅(花名:张挺) 就职于 阿⾥里里巴巴淘宝技术部 MidwayJS 团队 zhangting@taobao.com @czy88840616 https://github.com/czy88840616 @czy88840616 MidwayJS 在内部体系中,Egg作为底层框架,不不直接使⽤用 TS 场景不不同 Egg 解决的是 BFF 场景,⽽而淘宝有不不少全栈场景 TS 场景不不同 Egg 解决的是 BFF 场景,⽽而淘宝有不不少全栈场景 除了了明确意义的 controller service 承载了了太多的职能。 TS 场景不不同 Egg 解决的是 BFF 场景,⽽而淘宝有不不少全栈场景 ⼦子⽬目录缺乏⽀支持 TS 体验不不同 js.map 体验不不同 Egg 解决的是 BFF 场景,⽽而淘宝有不不少全栈场景 js/ts ⽬目录混合 TS 体验不不同 Egg 解决的是 BFF 场景,⽽而淘宝有不不少全栈场景 class ⽤用法,⽆无法多继承 TS 杂糅的 app/ctx 合并机制 体验不不同 Egg 解决的是 BFF 场景,⽽而淘宝有不不少全栈场景 TS 第⼀一代设计 第⼀一代设计 TS 解决复杂度问题0 码力 | 95 页 | 8.28 MB | 1 年前3
Hello 算法 1.1.0 TypeScript版持。在与读者交流期间,我 最常被问的一个问题是“如何入门算法”。逐渐地,我对这个问题产生了浓厚的兴趣。 两眼一抹黑地刷题似乎是最受欢迎的方法,简单、直接且有效。然而刷题就如同玩“扫雷”游戏,自学能力 强的人能够顺利将地雷逐个排掉,而基础不足的人很可能被炸得满头是包,并在挫折中步步退缩。通读教材 也是一种常见做法,但对于面向求职的人来说,毕业论文、投递简历、准备笔试和面试已经消耗了大部分精 ——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变革,它凭借高速的计算能力和出色的可编程性,成为了执行算法与处理数 据的理想媒介。无论是电子游戏的逼真画面、自动驾驶的智能决策,还是 AlphaGo 的精彩棋局、ChatGPT 的自然交互,这些应用都是算法在计算机上的精妙演绎。 愿这本书在你的脑海中轻轻响起,留下独特而深刻的旋律。 第 0 章 前言 hello‑algo.com 2 0.1 关于本书 本项目旨在创建一本开源、免费、对新手友好的数据结构与算法入门教程。 ‧ 全书采用动画图解,结构化地讲解数据结构与算法知识,内容清晰易懂,学习曲线平滑。 ‧ 算法源代码皆可一键运行,支持 Python、C++、Java、C#、Go、Swift、JavaScript、TypeScript、Dart、0 码力 | 383 页 | 18.49 MB | 1 年前3
Hello 算法 1.2.0 简体中文 TypeScript 版持。在与读者交流期间,我 最常被问的一个问题是“如何入门算法”。逐渐地,我对这个问题产生了浓厚的兴趣。 两眼一抹黑地刷题似乎是最受欢迎的方法,简单、直接且有效。然而刷题就如同玩“扫雷”游戏,自学能力 强的人能够顺利将地雷逐个排掉,而基础不足的人很可能被炸得满头是包,并在挫折中步步退缩。通读教材 也是一种常见做法,但对于面向求职的人来说,毕业论文、投递简历、准备笔试和面试已经消耗了大部分精 ——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变革,它凭借高速的计算能力和出色的可编程性,成为了执行算法与处理数 据的理想媒介。无论是电子游戏的逼真画面、自动驾驶的智能决策,还是 AlphaGo 的精彩棋局、ChatGPT 的自然交互,这些应用都是算法在计算机上的精妙演绎。 。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:搜索、排序、分治、回溯、动态规划、贪心等算法的定义、优缺点、效率、应用场景、解题步骤 和示例问题等。 第 0 章 前言 www.hello‑algo.com 3 图 0‑1 本书主要内容 0.1.3 致谢 本书在开源社区众多贡献者的共同努力下不断完善。感谢每一位投入时间与精力的撰稿人,他们是(按照0 码力 | 383 页 | 18.49 MB | 10 月前3
TypeScript 4.0 使用手册
mkdir components 4. cd .. Webpack会帮助我们生成 dist 目录。 现在把这个目录变成npm包。 1. npm init -y React与webpack 初始化项目结构 初始化工程 React与webpack - 53 - 本文档使用 书栈网 · BookStack.CN 构建 它会使用默认值生成一个 package.json 文件。 首先确保已经全局安装了Webpack。 return sum; 11. } 这个版本的循环能得到正确的结果,因为内层循环的 i 可以屏蔽掉外层循环的 i 。 _通常_来讲应该避免使用屏蔽,因为我们需要写出清晰的代码。 同时也有些场景适合利用它,你需要 好好打算一下。 块级作用域变量的获取 变量声明 - 99 - 本文档使用 书栈网 · BookStack.CN 构建 在我们最初谈及获取用 var 声明的变量时,我们 void { 2. // ... 3. } 4. f(); 上面的代码是一个类型推断的例子,将在本手册后文介绍。 其次,你需要知道在解构属性上给予一个默认或可选的属性用来替换主初始化列表。 要知道 C 的 定义有一个 b 可选属性: 1. function f({ a, b = 0 } = { a: "" }): void { 2. // ... 3. }0 码力 | 683 页 | 6.27 MB | 1 年前3
Hello 算法 1.0.0b5 TypeScript 版爱和支持。在与读者的交流期间, 最常收到的一个问题是“如何入门学习算法”。我逐渐对这个问题产生了浓厚的兴趣。 两眼一抹黑地刷题似乎是最受欢迎的方法,简单直接且有效。刷题就如同玩“扫雷”游戏,自学能力强的同 学能够顺利地将地雷逐个排掉,而基础不足的同学很可能被炸的满头是包,并在挫折中步步退缩。通读教材 书籍也是一种常见做法,但对于面向求职的同学来说,毕业季、投递简历、准备笔试面试已经占据了大部分 愿这本书在你的脑海中轻轻响起,留下独特而深刻的旋律。 第 0 章 前言 hello‑algo.com 2 0.1 关于本书 本项目旨在创建一本开源免费、新手友好的数据结构与算法入门教程。 ‧ 全书采用动画图解,结构化地讲解数据结构与算法知识,内容清晰易懂、学习曲线平滑。 ‧ 算法源代码皆可一键运行,支持 Java、C++、Python、Go、JS、TS、C#、Swift、Rust、Dart、Zig 等 语言。 。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:搜索、排序、分治、回溯、动态规划、贪心等算法的定义、优缺点、效率、应用场景、解题步骤、 示例题目等。 第 0 章 前言 hello‑algo.com 3 图 0‑1 Hello 算法内容结构 0.1.3 致谢 在本书的创作过程中,我得到了许多人的帮助,包括但不限于:0 码力 | 378 页 | 30.70 MB | 1 年前3
Hello 算法 1.0.0b1 TypeScript 版,我也回复 了许多读者的评论问题,遇到最多的问题是“如何入门学习算法”。我渐渐也对这个问题好奇了起来。 两眼一抹黑地刷题应该是最受欢迎的方式,简单粗暴且有效。然而,刷题就如同玩“扫雷”游戏,自学能力强 的同学能够顺利地将地雷逐个排掉,而基础不足的同学很可能被炸的满头是包,并在受挫中步步退缩。通读教 材书籍也是常用方法,但对于面向求职的同学来说,毕业季、投递简历、应付笔面试已经占用大部分精力,厚 . . . . . . . . . . . . 180 1 0. 写在前面 0.1. 关于本书 本项目致力于构建一本开源免费、新手友好的数据结构与算法入门书。 ‧ 全书采用动画图解,结构化地讲解数据结构与算法知识,内容清晰易懂、学习曲线平滑; ‧ 算法源代码皆可一键运行,支持 Java, C++, Python, Go, JS, TS, C#, Swift, Zig 等语言; ‧ 链表、栈、队列、 散列表、树、堆、图等数据结构,内容包括定义、优劣势、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:查找算法、排序算法、搜索与回溯、动态规划、分治算法,内容包括定义、使用场景、优劣势、时 空效率、实现方法、示例题目等。 0. 写在前面 hello‑algo.com 2 Figure 0‑1. Hello 算法内容结构 0.1.3. 致谢 本书的成书过程中,我获得了许多人的帮助,包括但不限于:0 码力 | 186 页 | 14.71 MB | 1 年前3
TypeScript Handbook(中文版)
这篇指南将会教你如何将TypeScript和React还有webpack结合在一起使用。 如果你正在做一个全新的工程,可以先阅读这篇React快速上手指南。 否则,我们假设已经在使用Node.js和npm。 初始化项目结构 让我们新建一个目录。 将会命名为 proj ,但是你可以改成任何你喜欢的名字。 mkdir proj cd proj 我们会像下面的结构组织我们的工程: proj/ ├─ dist/ 生成生产环境的构建版本 在使用 npm run start 运行工程的时候,我们并没有生成一个优化过的版本。 通 常我们想给用户一个运行的尽可能快并在体积上尽可能小的代码。 像压缩这样的优 化方法可以做到这一点,但是总是要耗费更多的时间。 我们把这样的构建版本称 做“生产环境”版本(与开发版本相对)。 要执行生产环境的构建,可以运行如下命令: npm run build 这会相应地创建优化过的JS和CSS文 )之前仅在存在显 式类型注释时才被推断。从TypeScript 2.1开始,字面量类型总是推断为默认值。 不带类型注解的 const 变量或 readonly 属性的类型推断为字面量初始化的类 型。已经初始化且不带类型注解的 let 变量、 var 变量、形参或 非 readonly 属性的类型推断为初始值的扩展字面量类型。字符串字面量扩展类型 是 string ,数字字面量扩展类型是0 码力 | 557 页 | 7.48 MB | 1 年前3
Hello 算法 1.2.0 繁体中文 TypeScript 版——鄧俊輝,清華大學計算機系教授 “如果我當年學資料結構與演算法時有《Hello 演算法》,學起來應該會簡單 10 倍!” ——李沐,亞馬遜資深首席科學家 電腦的出現為世界帶來了巨大的變革,它憑藉高速的運算能力與卓越的可程式化特性,成為執行演算法 與處理資料的理想媒介。無論是電玩遊戲的逼真畫面、自動駕駛的智慧決策,還是 AlphaGo 的精彩棋局、 ChatGPT 的自然互動,這些應用都是演算法在電腦上的精妙演繹。 10.3 二分搜尋邊界 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 10.4 雜湊最佳化策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 10.5 重識搜尋演算法 . . . . 標題註釋,用於標註函式、類別、測試樣例等 */ // 內容註釋,用於詳解程式碼 /** * 多行 * 註釋 */ 0.2.2 在動畫圖解中高效學習 相較於文字,影片和圖片具有更高的資訊密度和結構化程度,更易於理解。在本書中,重點和難點知識將主 要透過動畫以圖解形式展示,而文字則作為解釋與補充。 如果你在閱讀本書時,發現某段內容提供瞭如圖 0‑2 所示的動畫圖解,請以圖為主、以文字為輔,綜合兩者0 码力 | 384 页 | 18.80 MB | 10 月前3
Programming TypeScripthy?) 安装等 # 初始化npm 项目 npm init --yes # 安装 TSC、TSLint 和 NodeJS 的类型声明 npm install --save-dev typescript tslint @types/node # 初始化 tsconfig.json tslint.json npx tsc/tslint --init # 初始化 手动 // 新建 tsconfig0 码力 | 3 页 | 202.08 KB | 1 年前3
共 9 条
- 1













