TypeScript Handbook(中文版)
让我们使用TypeScript来创建一个简单的Web应用。 安装TypeScript 有两种主要的方式来获取TypeScript工具: 通过npm(Node.js包管理器) 安装Visual Studio的TypeScript插件 Visual Studio 2017和Visual Studio 2015 Update 3默认包含了TypeScript。 如果你 的Visual Studio还没有安装TypeScript,你可以下载它。 -g gulp-cli 然后安装 typescript , gulp 和 gulp-typescript 到开发依赖项。 Gulp- typescript是TypeScript的一个Gulp插件。 npm install --save-dev typescript gulp gulp-typescript 写一个简单的例子 让我们写一个Hello World程序。 在 src 目录下创建 copy-html 任务并且把它加作 default 的依赖项。 这样, 当 default 执行时, copy-html 会被首先执行。 我们还修改了 default 任 务,让它使用 tsify 插件调用Browserify,而不是 gulp-typescript 。 方便的 是,两者传递相同的参数对象到TypeScript编译器。 调用 bundle 后,我们使用 source (v0 码力 | 557 页 | 7.48 MB | 1 年前3
Hello 算法 1.1.0 TypeScript版如果感觉以下内容理解困难,可以在读完“栈”章节后再来复习。 那么,迭代和递归具有什么内在联系呢?以上述递归函数为例,求和操作在递归的“归”阶段进行。这意味 着最初被调用的函数实际上是最后完成其求和操作的,这种工作机制与栈的“先入后出”原则异曲同工。 事实上,“调用栈”和“栈帧空间”这类递归术语已经暗示了递归与栈之间的密切关系。 1. 递:当函数被调用时,系统会在“调用栈”上为该函数分配新的栈帧,用于存储函数的局部变量、参数、 。有了这些地址,程序便可以访问内存中的数据。 图 3‑2 内存条、内存空间、内存地址 Tip 值得说明的是,将内存比作 Excel 表格是一个简化的类比,实际内存的工作机制比较复杂,涉及地址 空间、内存管理、缓存机制、虚拟内存和物理内存等概念。 内存是所有程序的共享资源,当某块内存被某个程序占用时,则无法被其他程序同时使用了。因此在数据结 构与算法的设计中,内存资源是一个重要的考虑因素 选择 10 作为初始容量。 ‧ 数量记录:声明一个变量 size ,用于记录列表当前元素数量,并随着元素插入和删除实时更新。根据 此变量,我们可以定位列表尾部,以及判断是否需要扩容。 ‧ 扩容机制:若插入元素时列表容量已满,则需要进行扩容。先根据扩容倍数创建一个更大的数组,再将 当前数组的所有元素依次移动至新数组。在本示例中,我们规定每次将数组扩容至之前的 2 倍。 // === File:0 码力 | 383 页 | 18.49 MB | 1 年前3
Hello 算法 1.2.0 简体中文 TypeScript 版如果感觉以下内容理解困难,可以在读完“栈”章节后再来复习。 那么,迭代和递归具有什么内在联系呢?以上述递归函数为例,求和操作在递归的“归”阶段进行。这意味 着最初被调用的函数实际上是最后完成其求和操作的,这种工作机制与栈的“先入后出”原则异曲同工。 事实上,“调用栈”和“栈帧空间”这类递归术语已经暗示了递归与栈之间的密切关系。 1. 递:当函数被调用时,系统会在“调用栈”上为该函数分配新的栈帧,用于存储函数的局部变量、参数、 。有了这些地址,程序便可以访问内存中的数据。 图 3‑2 内存条、内存空间、内存地址 Tip 值得说明的是,将内存比作 Excel 表格是一个简化的类比,实际内存的工作机制比较复杂,涉及地址 空间、内存管理、缓存机制、虚拟内存和物理内存等概念。 内存是所有程序的共享资源,当某块内存被某个程序占用时,则通常无法被其他程序同时使用了。因此在数 据结构与算法的设计中,内存资源是一个重要的考虑 选择 10 作为初始容量。 ‧ 数量记录:声明一个变量 size ,用于记录列表当前元素数量,并随着元素插入和删除实时更新。根据 此变量,我们可以定位列表尾部,以及判断是否需要扩容。 ‧ 扩容机制:若插入元素时列表容量已满,则需要进行扩容。先根据扩容倍数创建一个更大的数组,再将 当前数组的所有元素依次移动至新数组。在本示例中,我们规定每次将数组扩容至之前的 2 倍。 // === File:0 码力 | 383 页 | 18.49 MB | 10 月前3
TypeScript 4.0 使用手册
让我们使用TypeScript来创建一个简单的Web应用。 有两种主要的方式来获取TypeScript工具: 通过npm(Node.js包管理器) 安装Visual Studio的TypeScript插件 Visual Studio 2017和Visual Studio 2015 Update 3默认包含了TypeScript。 如果你的 Visual Studio还没有安装TypeScript,你可以下载它。 -g gulp-cli 然后安装 typescript , gulp 和 gulp-typescript 到开发依赖项。 Gulp-typescript是 TypeScript的一个Gulp插件。 1. npm install --save-dev typescript gulp@4.0.0 gulp-typescript 让我们写一个Hello World程序。 在 src 目录下创建 也就是说TypeScript和Node.js的设置 不需要改变就可以移植到浏览器里。 首先,安装Browserify,tsify和vinyl-source-stream。 tsify是Browserify的一个插件, 就像gulp-typescript一样,它能够访问TypeScript编译器。 vinyl-source-stream会将 Browserify的输出文件适配成gulp能够解析的格式,它叫做vinyl。0 码力 | 683 页 | 6.27 MB | 1 年前3
Hello 算法 1.0.0b1 TypeScript 版10 作为初始容量。 ‧ 数量记录:需要声明一个变量 size ,用来记录列表当前有多少个元素,并随着元素插入与删除实时更 新。根据此变量,可以定位列表的尾部,以及判断是否需要扩容。 ‧ 扩容机制:插入元素有可能导致超出列表容量,此时需要扩容列表,方法是建立一个更大的数组来替换 当前数组。需要给定一个扩容倍数 extendRatio ,在本示例中,我们规定每次将数组扩容至之前的 2 倍。 number): void { if (index < 0 || index >= this._size) throw new Error('索引越界'); // 元素数量超出容量时,触发扩容机制 if (this._size === this._capacity) { this.extendCapacity(); } // 将索引 index 以及之后的元素都向后移动一位 for size = stack.length; /* 判断是否为空 */ const is_empty = stack.length === 0; 5.1.2. 栈的实现 为了更加清晰地了解栈的运行机制,接下来我们来自己动手实现一个栈类。 栈规定元素是先入后出的,因此我们只能在栈顶添加或删除元素。然而,数组或链表都可以在任意位置添加删 除元素,因此 栈可被看作是一种受约束的数组或链表。换言之,我们可以“屏蔽”数组或链表的部分无关操0 码力 | 186 页 | 14.71 MB | 1 年前3
Hello 算法 1.0.0b5 TypeScript 版们选择 10 作为初始容量。 ‧ 数量记录:声明一个变量 size,用于记录列表当前元素数量,并随着元素插入和删除实时更新。根据此 变量,我们可以定位列表尾部,以及判断是否需要扩容。 ‧ 扩容机制:若插入元素时列表容量已满,则需要进行扩容。首先根据扩容倍数创建一个更大的数组,再 将当前数组的所有元素依次移动至新数组。在本示例中,我们规定每次将数组扩容至之前的 2 倍。 // === File: num: number): void { if (index < 0 || index >= this._size) throw new Error('索引越界'); // 元素数量超出容量时,触发扩容机制 if (this._size === this._capacity) { this.extendCapacity(); } // 将索引 index 以及之后的元素都向后移动一位 for const size = stack.length; /* 判断是否为空 */ const is_empty = stack.length === 0; 5.1.2 栈的实现 为了深入了解栈的运行机制,我们来尝试自己实现一个栈类。 栈遵循先入后出的原则,因此我们只能在栈顶添加或删除元素。然而,数组和链表都可以在任意位置添加和 删除元素,因此栈可以被视为一种受限制的数组或链表。换句话说,我们可以“屏蔽”数组或链表的部分无0 码力 | 378 页 | 30.70 MB | 1 年前3
TypeScript 多场景设计方案及应用实践
场景,⽽而淘宝有不不少全栈场景 js/ts ⽬目录混合 TS 体验不不同 Egg 解决的是 BFF 场景,⽽而淘宝有不不少全栈场景 class ⽤用法,⽆无法多继承 TS 杂糅的 app/ctx 合并机制 体验不不同 Egg 解决的是 BFF 场景,⽽而淘宝有不不少全栈场景 TS 第⼀一代设计 第⼀一代设计 TS 解决复杂度问题 尝试引⼊入 IoC 解决复杂业务的问题 TS 配置 很早就开始使⽤用 1、体验⼀一致,⽅方便便代码模块迁移 2、跨平台发布 实现⼩小⽽而美 TS Midway-FaaS 实现⼩小⽽而美 Midway For Egg 600 line 符合全栈场景的框架, ⽀支持 egg 插件体系的完 整版本。 Midway For Koa 220line ⽀支持 koa 作为基础框架, 包含最简单单进程场景的 midway 适配版本。 Midway For Express0 码力 | 95 页 | 8.28 MB | 1 年前3
共 7 条
- 1













