diff --git a/translated/tech/20161220 TypeScript the missing introduction.md b/translated/tech/20161220 TypeScript the missing introduction.md index 53c7e84782..2177c0243e 100644 --- a/translated/tech/20161220 TypeScript the missing introduction.md +++ b/translated/tech/20161220 TypeScript the missing introduction.md @@ -1,55 +1,39 @@ -简洁的介绍TypeScript +一篇缺失的 TypeScript 介绍 ============================================================= +**下文是 James Henry([@MrJamesHenry][8])所提交的内容。我是 ESLint 核心团队的一员,也是 TypeScript 布道师。我正在和 Todd 在 [UltimateAngular][9] 平台上合作发布 Angular 和 TypeScript 的精品课程。** -**下文是James Henry([@MrJamesHenry][8])所编辑的内容。我是ESLint核心团队的一员,也是TypeScript的热衷者和发扬者。我和Todd合作在[UltimateAngular][9]平台上发布Angular和TypeScript的精品课程。** - -> 本文的主旨是为了介绍我们对TypeScript的思考和在JavaScript开发当中的更好的使用。 +> 本文的主旨是为了介绍我们是如何看待 TypeScript 的以及它在加强 JavaScript 开发中所起的作用。 > -> 我们将给出编译和关键字准确的定义 +> 我们也将尽可能地给出那些类型和编译方面的那些时髦词汇的准确定义。 -TypeScript强大之处远远不止这些,本篇文章无法涵盖,想要了解更多请阅读官方文档[official document][15],或者查阅[TypeScript courses over on UltimateAngular][16]UltimateAngular平台的TypeScript精品课程-从初学者到TypeScript高手 +TypeScript 强大之处远远不止这些,本篇文章无法涵盖,想要了解更多请阅读[官方文档][15],或者学习 [UltimateAngular 上的 TypeScript 课程][16] ,从初学者成为一位 TypeScript 高手。 -### [目录][17] +### 背景 -* [背景][10] -* [关键知识的掌握][11] - * [JavaScript解释型语言还是编译型语言][1] - * [运行时间 VS 编译时间][2] - * [TypeScript编译器][3] - * [动态类型 VS 静态类型][4] -* [TypeScript在我们JavaScript工作流程中的作用][12] - * [我们的源文件是我们的文档,TypeScript是我们的拼写检查][5] -* [TypeScript是一种可以启动其它工具的工具][13] - * [什么是抽象语法树(AST)?][6] - * [示例:在VS中重命名符号][7] -* [总结][14] +TypeScript 是个出乎意料强大的工具,而且它真的很容易掌握。 -### [背景][18] +然而,TypeScript 可能比 JavaScript 要更为复杂一些,因为 TypeScript 可能向我们同时引入了一系列以前没有考虑过的 JavaScript 程序相关的技术概念。 -TypeScript是很容易掌握的强大开发工具 +每当我们谈论到类型、编译器等这些概念的时候,你会发现很快会变的不知所云起来。 -然而,TypeScript可能比JavaScript要更为复杂,因为TypeScript可能同时向我们介绍以前没有考虑到的JavaScript程序相关的一些列技术概念。 +这篇文章就是一篇为了解答你需要知道的许许多多不知所云的概念,来帮助你 TypeScript 快速入门的教程,可以让你轻松自如的应对这些概念。 -每当我们谈论到类型、编译器等这些概念的时候。事情就会变的非常麻烦和不知所云起来。 +### 关键知识的掌握 -这篇文章就是为了你在学习过程中你需要知道的许许多多不知所云的概念解答的,来帮助你TypeScript入门的,让你轻松自如的应对这些概念。 +在 Web 浏览器中运行我们的代码这件事或许使我们对它是如何工作的产生一些误解,“它不用经过编译,是吗?”,“我敢肯定这里面是没有类型的...” -### [关键知识的掌握][19] +更有意思的是,上述的说法既是正确的也是不正确的,这取决于上下文环境和我们是如何定义这些概念的。 -有时候运行我们的代码是在Web浏览器中运行,和我们平常运行代码有不同的感觉,它是怎样运行自己书写的代码的?“没有经过编译的,是正确的吗?”。“我敢肯定没有类型的...” +首先,我们要作的是明确这些。 -情况变的更有趣了,当我们知道通过前后程序的定义来判断语法的正确与否 - -首先我们要作的是 - -#### [JavaScript 解释型语言还是编译型语言][20] +#### JavaScript 是解释型语言还是编译型语言? 传统意义上,程序员经常将自己的程序编译之后运行出结果就认为这种语言是编译型语言。 -> 从初学者的角度来说,编译的过程就是将我们自己编辑好的高级语言程序转换成机器实际运行过程中能够看懂的格式(一般是二进制文件格式)。 +> 从初学者的角度来说,编译的过程就是将我们自己编辑好的高级语言程序转换成机器实际运行的格式。 -就像GO语言,可以使用go build的命令行工具编译.go的文件格式,将其编译成较低级的语言,可以直接运行的格式。(译者没有使用过GO语言,不清楚GO编译过程的机制,试着用C语言的方式说明) +就像 Go 语言,可以使用 `go build` 的命令行工具编译 .go 的文件,将其编译成代码的低级形式,它可以直接执行、运行。 ``` # We manually compile our .go file into something we can run @@ -59,21 +43,21 @@ go build ultimate-angular.go ./ultimate-angular ``` -我们在日常使用JavaScript开发的时候并没有编译的这一步,这是JavaScript忽略了我们程序员对新一代构建工具和模块加载程序的热爱。 +作为一个 JavaScript 程序员(这一刻,请先忽略我们对新一代构建工具和模块加载程序的热爱),我们在日常的 JavaScript 开发中并没有编译的这一基本步骤, -我们编写JavaScript代码在浏览器的