在个人职业生涯开始时,我是一名桌面应用开发人员,其中强类型语言占据了市场主导地位。
当我迁移到Web开发时,我对JavaScript和Python等语言的每一个新功能都很着迷。事实上,我没有必要声明变量的类型,这极大的提升了个人生产力,而且使个人工做变得更有趣了。
因此我第一次据说TypeScript时,脑海中的第一个想法是这个语言的演变是否是倒退了一步。javascript
是的,但这也要取决于具体状况。对于我独自工做的我的项目,我仍然更喜欢纯JavaScript,他的生产力更高。可是,对于那种团队工做的大型项目,我建议使用TypeScript。在整篇文章中,我将解释如何使用以及为何去使用。java
根据概念定义的,“TypeScript是用于应用程序规模开发的JavaScript”。也就是说,咱们对项目初始设置的工做能够经过复杂项目的可维护性获得补偿。下面咱们来看一下为何会发生这种状况:node
输入safe = less errors经过在代码中定义类型,您能够容许IDE在使用仅在运行时感知的类和函数时确认错误。typescript
例:express
这里我使用的是Visual Studio Code,它指出了两个错误:
在第6行:咱们试图将字符串参数传递给只接受数字的函数。
在第9行:咱们试图将一个返回数字的函数的结果赋给字符串。
若是没有Typescript,这两个错误将被忽视,致使最终应用程序出现一些错误。npm
在复杂的项目中,咱们有数百个类分布在多个文件中。当咱们定义类型时,IDE可以将对象和函数关联到给它们起源的文件。
当使用control + 单击从另外一个文件导入的方法或类时,IDE将自动导航到导入的文件,突出显示定义引用的行。json
咱们能够在从其余文件导入的类中使用自动完成功能。服务器
维护的难度是Java和C#开发人员避免将大型项目迁移到JS的主要缘由之一。咱们能够说,Typescript是一种克服这一障碍的企业语言。app
如今让咱们一步一步地建立一个在Express.js项目中使用Typescript语言的环境。less
npm init
咱们如今安装typescript包。
npm安装typescript -s
关于Typescript节点包
Node.js是一个运行Javascript而不是Typescript的引擎。节点Typescript包容许您将 .ts文件转换为 .js脚本。Babel也可用于转换Typescript,但市场标准是使用官方的Microsoft软件包。
在咱们内部package.json咱们将放置一个名为tsc:
“scripts”:{ “tsc”:“tsc” },
此修改容许咱们从项目文件夹中的命令行调用typescript函数。因此咱们可使用如下命令:
npm run tsc - --init
此命令经过建立tsconfig.json文件来初始化typescript项目。在此文件中,咱们将取消注释该outDir选项,并为要传递的已转换的.js文件选择一个位置:
npm install express -s
Express和Typescript包是独立的。这样作的结果是Typescript不“知道”Express类的类型。Typescript有一个特定的npm包来识别Express类型。
npm install @ types / express -s
为了拥有尽量最简单的应用程序,我将使用express.js教程的hello world示例:
var express = require('express'); var app = express(); app.get('/', function (req, res){ res.send('hello world!'); }); app.listen(3000, function(){ console.log('Example app listening on port 3000'); })
在咱们的项目中,咱们将建立一个名为的文件夹app。在此文件夹中,咱们将建立一个名为app.ts如下内容的文件:
import express = require('express'); // Create a new express application instance const app: express.Application = express(); app.get('/', function (req, res) { res.send('Hello World!'); }); app.listen(3000, function () { console.log('Example app listening on port 3000!'); });
npm run tsc
如您所见,该命令自动建立了build文件夹和.js文件。
node build / app.js
有了这个,咱们已经在端口3000上运行了一个服务器:
您可使用ts-node包直接在节点上运行typescript 。
此软件包仅建议用于开发。要在生产中进行最终部署,请始终使用项目的javascript版本。
该ts-node已被包含在另外一个包的依赖关系,T ts-node-dev。安装后,ts-node-dev咱们能够运行命令,以便在项目文件发生更改时从新启动服务器。
npm安装ts-node-dev -s
在咱们内部,packege.json咱们将添加两个脚本:
“scripts”:{ “tsc”:“tsc”, “dev”:“ts-node-dev --respawn --transpileOnly ./app/app.ts”,“prod”:“tsc && node ./build/ app.js“ },
要启动开发环境:
npm run dev
要以生产模式运行服务器:
npm run prod
有啥问题能够在评论处给我留言谢谢你的阅读!