TypeScript 类型系统TypeScript 类型系统 2 0 2 1 年 1 月 2 1 日 分 享 人 陈 文 岗 : 学 校 中国科学院大学 : 关于TypeScript 2 TypeScript是微软推出的JavaScript静态类型版本,它是 JavaScript的超集,可以编译为纯粹的JavaScript TypeScript 到 JavaScript 3 add.ts add.js add ts TypeScript 基础类型 4 TypeScript 高级类型 5 TypeScript 高级类型 6 TypeScript 高级类型 7 TypeScript 高级类型 8 TypeScript 特殊类型 9 TypeScript 结构类型系统 10 标明类型系统 即使两个类的结构完全一致,也不能互相赋值 结构类型系统 类型形状一致即可互相赋值 TypeScript TypeScript 类型声明空间 11 类型声明空间里包含用来当做类型注解的内容 类型不能赋给一个变量,也不能作为值进行传递(class除外) TypeScript 变量声明空间(值空间) 12 变量声明空间包含可用作变量的内容 class既属于类型声明空间,也属于变量声明空间 普通的变量/常量不能用作类型注解 TypeScript 函数重载 13 1. TypeScript类型信息只存在于编译期,不会带到运行期0 码力 | 25 页 | 1.27 MB | 1 年前3
TypeScript Handbook(中文版)
TypeScript 1.7 TypeScript 1.6 TypeScript 1.5 TypeScript 1.4 TypeScript 1.3 TypeScript 1.1 手册 基础类型 变量声明 TypeScript Handbook(中文版) 1 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 泛型 枚举 类型推论 类型兼容性 高级类型 Symbols Iterators 和 Generators 模块 命名空间 命名空间和模块 模块解析 声明合并 书写.d.ts文件 JSX Decorators 混入 三斜线指令 如何书写声明文件 结构 规范 举例 深入 发布 使用 工程配置 tsconfig.json NPM包的类型 TypeScript js也 宣布使用TypeScript做新版本的开发。 那么TypeScript究竟为何物?又有什么 魅力呢? TypeScript是Microsoft公司注册商标。 TypeScript具有类型系统,且是JavaScript的超集。 它可以编译成普通的JavaScript 代码。 TypeScript支持任意浏览器,任意环境,任意系统并且是开源的。 TypeScript目前还在积极的开0 码力 | 557 页 | 7.48 MB | 1 年前3
Hello 算法 1.0.0b1 TypeScript 版置,让你掌握各种“排雷方法”。有了这些本领,相信你可以 更加得心应手地刷题与阅读文献,逐步搭建起完整的知识体系。 书内的代码配有可一键运行的源文件,托管在 github.com/krahets/hello‑algo 仓库。动画在 PDF 内的展示 效果有限,可前往 hello‑algo.com 网页版获得更好的阅读体验。 致谢 本书在开源社区的群策群力下逐步成长,感谢每一位撰稿人,是他们的无私奉献让这本书变得更好,他 杂度、空间复杂度,包括推算 方法、常见类型、示例等。 ‧ 数据结构:常用的基本数据类型,数据在内存中的存储方式、数据结构分类方法。数组、链表、栈、队列、 散列表、树、堆、图等数据结构,内容包括定义、优劣势、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:查找算法、排序算法、搜索与回溯、动态规划、分治算法,内容包括定义、使用场景、优劣势、时 空效率、实现方法、示例题目等。 0. 写在前面 加粗,此类文字值得特别关注。 专有名词和有特指含义的词句会使用“双引号” 标注,以避免歧义。 0. 写在前面 hello‑algo.com 4 本书部分放弃了编程语言的注释规范,以换取更加紧凑的内容排版。注释主要分为三种类型:标题注释、内容 注释、多行注释。 /* 标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** * 多行 * 注释 */ 0.2.3. 在动画图解中高效学习0 码力 | 186 页 | 14.71 MB | 1 年前3
Hello 算法 1.1.0 TypeScript版来完成本书的创作。 本人自知学疏才浅,书中内容虽然已经过一段时间的打磨,但一定仍有许多错误,恳请各位老师和同学批评 指正。 本书中的代码附有可一键运行的源文件,托管于 github.com/krahets/hello‑algo 仓库。 动画在 PDF 内的展示效果受限,可访问 hello‑algo.com 网页版以获得更优的阅读体验。 推荐语 “一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读!” 3.1 数据结构分类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.2 基本数据类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.3 数字编码 * . . . . 么本书可助你回顾与梳理算法知识体系,仓库源代码可 以当作“刷题工具库”或“算法字典”来使用。 若你是算法“大神”,我们期待收到你的宝贵建议,或者一起参与创作。 前置条件 你需要至少具备任一语言的编程基础,能够阅读和编写简单代码。 0.1.2 内容结构 本书的主要内容如图 0‑1 所示。 ‧ 复杂度分析:数据结构和算法的评价维度与方法。时间复杂度和空间复杂度的推算方法、常见类型、示 例等。0 码力 | 383 页 | 18.49 MB | 1 年前3
Hello 算法 1.2.0 简体中文 TypeScript 版来完成本书的创作。 本人自知学疏才浅,书中内容虽然已经过一段时间的打磨,但一定仍有许多错误,恳请各位老师和同学批评 指正。 本书中的代码附有可一键运行的源文件,托管于 github.com/krahets/hello‑algo 仓库。 动画在 PDF 内的展示效果受限,可访问 www.hello‑algo.com 网页版以获得更优的阅读体验。 推荐语 “一本通俗易懂的数据结构与算法入门书,引导读者手 3.1 数据结构分类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.2 基本数据类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.3 数字编码 * . . . . 2 0.1 关于本书 本项目旨在创建一本开源、免费、对新手友好的数据结构与算法入门教程。 ‧ 全书采用动画图解,内容清晰易懂、学习曲线平滑,引导初学者探索数据结构与算法的知识地图。 ‧ 源代码可一键运行,帮助读者在练习中提升编程技能,了解算法工作原理和数据结构底层实现。 ‧ 提倡读者互助学习,欢迎大家在评论区提出问题与分享见解,在交流讨论中共同进步。 0.1.1 读者对象 若你是算法初0 码力 | 383 页 | 18.49 MB | 10 月前3
Hello 算法 1.0.0b5 TypeScript 版,让你掌握各种“排雷方法”。有了这些本领,相信 你可以更加自如地应对刷题和阅读文献,逐步构建起完整的知识体系。 本书中的代码附有可一键运行的源文件,托管于 github.com/krahets/hello‑algo 仓库。动画在 PDF 内的 展示效果受限,可访问 hello‑algo.com 网页版以获得更优的阅读体验。 推荐语 “一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读。” 3.1 数据结构分类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.2 基本数据类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.3 数字编码 * . . . . 么本书可助您回顾与梳理算法知识体系,仓库源代码可以 被当作“刷题工具库”或“算法字典”来使用。 若您是算法大神,我们期待收到您的宝贵建议,或者一起参与创作。 � 前置条件 您需要至少具备任一语言的编程基础,能够阅读和编写简单代码。 0.1.2 内容结构 本书主要内容如图 0‑1 所示。 ‧ 复杂度分析:数据结构和算法的评价维度与方法。时间复杂度、空间复杂度的推算方法、常见类型、示0 码力 | 378 页 | 30.70 MB | 1 年前3
TypeScript 4.0 使用手册
从JavaScript迁移到TypeScript 手册 基础类型 变量声明 接口 类 函数 泛型 枚举 类型推论 类型兼容性 高级类型 Symbols Iterators 和 Generators 模块 命名空间 命名空间和模块 模块解析 声明合并 JSX Decorators 混入 三斜线指令 JavaScript文件里的类型检查 - 2 - 本文档使用 书栈网 · BookStack BookStack.CN 构建 实用工具类型 如何书写声明文件 介绍 库结构 举例 最佳实践 深入 模板 发布 使用 工程配置 tsconfig.json 工程引用 NPM包的类型 编译选项 配置 Watch 在MSBuild里使用编译选项 与其它构建工具整合 使用TypeScript的每日构建版本 Wiki TypeScript里的this 编码规范 welcome TypeScript 4.0 (August 20, 2020) | 版本发布说明 ✔ TypeScript语言用于大规模应用的JavaScript开发。 ✔ TypeScript支持类型,是 JavaScript的超集且可以编译成纯JavaScript代码。 ✔ TypeScript兼容所有浏览器,所有宿主 环境,所有操作系统。 ✔ TypeScript是开源的。 一大0 码力 | 683 页 | 6.27 MB | 1 年前3
TypeScript的发展历程TypeScript ●JS + 静态类型 ●工具完善 ●贴合语言标准 TS和伙伴们 ●动态类型语法糖: CoffeeScript ●静态类型新语言: BuckleScript ●渐进定型: Flow Type CoffeeScript ●纯语法糖,动态类型 ●上手简单 ●工具不良 ●与新标准有冲突 BuckleScript ●脱胎于OCaml ●类型系统强大 ●编译高度优化 ●语义语法疏远,上手难* ●语义语法疏远,上手难* Flow Type ●JS+类型标注 ●工具相对完善 ●上手容易 ●与TS设计相似* 比较 类型系统 难度 工具链 CoffeeScript 动态 低 差 BuckleScript 很强 高 较好 FlowType 强 较低 较好 TypeScript 强 低 很好 TS发展史 ●简单易用,不求完美 ●原汁原味,贴合JS ●从简单到强大 TS发展史 Pre 1 Compare>(array: Array): Array { array.sort((x, y) => x.compare(y)) return array } TS 1.4 ●引入联合类型 ●表达力介于Java-Kotlin之间 // express like API // string, regex or array testPath('/path') testPath(/path/) 0 码力 | 64 页 | 6.17 MB | 1 年前3
Hello 算法 1.2.0 繁体中文 TypeScript 版來完成本書的創作。 本人自知學疏才淺,書中內容雖然已經過一段時間的打磨,但一定仍有許多錯誤,懇請各位老師與同學批評 指正。 本書中的程式碼附有可一鍵執行的原始檔,託管於 github.com/krahets/hello‑algo 倉庫。 動畫在 PDF 內的展示效果有限,可訪問 www.hello‑algo.com 網頁版以獲得更佳的閱讀體驗。 推薦語 “一本通俗易懂的資料結構與演算法入門書,引導讀者 ——鄧俊輝,清華大學計算機系教授 “如果我當年學資料結構與演算法時有《Hello 演算法》,學起來應該會簡單 10 倍!” ——李沐,亞馬遜資深首席科學家 電腦的出現為世界帶來了巨大的變革,它憑藉高速的運算能力與卓越的可程式化特性,成為執行演算法 與處理資料的理想媒介。無論是電玩遊戲的逼真畫面、自動駕駛的智慧決策,還是 AlphaGo 的精彩棋局、 ChatGPT 的自然互動,這些應用都是演算法在電腦上的精妙演繹。 到一個家庭,社會的主要組織形式呈現出“樹”的特徵;冬天的衣服就像“堆疊”,最先穿上的最後才能脫下; 羽毛球筒則如同“佇列”,一端放入、一端取出;字典就像一個“雜湊表”,能夠快速查找目標詞條。 本書旨在透過清晰易懂的動畫圖解與可執行的程式碼範例,使讀者理解演算法和資料結構的核心概念,並能 夠透過程式設計來實現它們。在此基礎上,本書致力於揭示演算法在複雜世界中的生動體現,展現演算法之 美。希望本書能夠幫助到你! i 目0 码力 | 384 页 | 18.80 MB | 10 月前3
Programming TypeScriptAST 2. 类型检查器检查AST 3. TS AST => JS 源码 ● JS 4. JS 源码 => JS AST 5. AST => 字节码 6. 运行时计算字节码 在这个过程中,第1-2 步骤中使用程序的类型,第三步不使用。就是说 TS TS 编译成 JS 时,不会考 类型。 这意味着,程序中的类型对程序生成的输出没有任何影响,类型只在类型检查这一步使用。 类型系统 ● 一般的有两种类型系统 一般的有两种类型系统 1. 通过显示句法告诉编译器所有值的类型(注解) 2. 自动推导类型 ● TS 身兼两种类型系统 // 建议 原文链接:Programming TypeScript 一般来说,最好让TS 推导类型,少数情况下才显式注解类型。(Why?) 安装等 # 初始化npm 项目 npm init --yes # 安装 TSC、TSLint 和 NodeJS 的类型声明 npm0 码力 | 3 页 | 202.08 KB | 1 年前3
共 12 条
- 1
- 2













