优秀的编程知识分享平台

网站首页 > 技术文章 正文

怎样用Typescript语言设置一个Node项目

nanyue 2024-07-22 14:18:15 技术文章 41 ℃

介绍

Node 是一个运行环境,可以编写服务器端 JavaScript。自2011年发布以来,它已获得广泛采用。由于JavaScript语言的性质:动态和弱类型,导致编写服务器端JavaScript因为代码库的增长可能具有挑战性。

从其他语言使用JavaScript的开发人员经常抱怨它缺乏强大的静态类型,但这就是TypeScript有了用武之地之一的地方,它弥补了这一弱点。

TypeScript 是一个类型化的 JavaScript 超集,可以帮助构建和管理大型 JavaScript 项目。它可以被认为是具有其他功能的JavaScript,如强静态类型,编译和面向对象编程。

注: 从技术上讲, Typescript是JavaScript的超集,这就意味着所有的JavaScript代码都是有效的Typescript代码。

此处列出了一些使用TypeScript的好处:

  1. 可选的静态类型。
  2. 类型接口。
  3. 使用接口的能力。

在本教程中,你将用TypeScript设置一个Node的项目,构造一个Express的应用并把它转译成JavaScript代码。

前提条件

在你开始之前,你需要已经安装了Nodejs环境。Nodejs的安装,你可以在通过https://nodejs.org/en/docs/参考如何在不同的平台上安装。

第一步----初始化一个项目

首先,创建一个目录,命名为’node_project’并进入这个目录下

mkdir node_project

cd node_project

接着初始化为一个npm的项目:

npm init -y

-y标志告诉npm init自动使用默认的设置。你可以在以后通过package.json文件更改。

第二步----配置Typescript编译器

你已经初始化了你的node项目,现在准备安装和设置Typescript。

在你的项目目录中运行下面的命令安装typescript:

npm install –save-dev typescript

输出如下:

added 1 package, and audited 2 packages in 1m

found 0 vulnerabilities

Typescript用tsconfig.json来配置项目的编译选项。在项目的根目录下创建文件tsconfig.json,并粘贴下面的内容到文件中:

{

"compilerOptions": {

"module": "commonjs",

"esModuleInterop": true,

"target": "es6",

"moduleResolution": "node",

"sourceMap": true,

"outDir": "dist"

},

"lib": ["es2015"]

}

上面JSON文件中一些键名的含义解释如下:

module:指定模块代码生成的方法。Node使用commonjs。

target:指定输出语言的版本级别。

moduleResolution:帮助编译器知道从哪里查找和导入模块。值‘node’表明使用Node模块的方式。

outDir:编译成JS文件的存放位置。

如想要知道更详细的键值的含义,可以参考typescript的文档。

第三步----创建一个最小化的Express服务器

现在需要安装和创建一个最简单的Express服务器。

npm install –save express@4.17.1

npm install –save-dev @types/express@4.17.1

第二个安装命令是安装Express的types模块,用来支持typescript。在Typescript中,types是用文件定义,通常是以.d.ts后缀结尾。这些文件提供了一个框架的一些类型信息。本例中是Express框架。

这个模块是必需的。因为Typescript和Express是相互独立的包。没有@types/express包,typescript就没有办法识别Express的一些类型。

下一步,创建一个src的目录,并在src的目录下创建app.ts文件,然后拷贝粘贴下面的内容:

import express from 'express';

const app = express();

const port = 3000;

app.get('/', (req, res) => {

res.send('Hello World!');

});

app.listen(port, () => {

return console.log(`Express is listening at http://localhost:${port}`);

});

上面的代码创建了一个Express服务器,在端口3000侦听客户端的请求。在运行服务器之前,你需要先用下面的命令把它编译成JS文件:

npx tsc

这个命令用前面创建的配置文件tsconfig.json来编译代码和放置编译结果到输出目录。本例中的输出目录名是dist。启动服务器:

node dist/app.js

如果启动成功,你将在命令窗口看到输出:

Express is listening at http://localhost:3000

在浏览器中输入localhost:3000,你将看到输出信息:

Hello world!

至此,你已经成功地在你的node项目中使用Typescript。下一步,你将设置eslint来规范和检测typescript代码中的错误。

第四步----配置Typescript使用eslint

Eslint是语法规则和代码风格的检查工具。特别是在多人协同开发时,能保持代码风格一致,检查语法和优化代码,降低运行时出现错误的概率。

首先我们将安装eslint包:

npm install –save-dev eslint

接着运行eslint的初始化命令,交互式的设置你的项目:

npx eslint --init

它将询问下面几个问题,本例子的回答如下:

你想如何使用ESLint?: 检查语法和发现的问题

你的项目使用什么类型的模块?: JavaScript modules (import/export)

你的项目使用哪种框架?: None of these

你的项目使用TypeScript吗?: Yes

你的代码在哪里行?: Node

你希望你的配置文件时什么格式的?: JavaScript

最后,根据你的回答,命令将询问是否安装所需要的一些依赖包,选择yes,它将安装eslint所需要的支持包。

安装完成后,它会在项目的根目录下生成一个文件.eslintrc.js,里面包含如下内容:

module.exports = {

"env": {

"node": true,

"es2021": true

},

"extends": [

"eslint:recommended",

"plugin:@typescript-eslint/recommended"

],

"parser": "@typescript-eslint/parser",

"parserOptions": {

"ecmaVersion": 13,

"sourceType": "module"

},

"plugins": [

"@typescript-eslint"

],

"rules": {

}

};

运行eslint来检查所有的以.ts后缀结尾的文件。

npx eslint . –ext .ts

现在你已经设置了eslint来检查你的typescript语法。下一步你将更新的npm配置,在里面添加一些方便运行lint和启动项目的脚本。

打开package.json, 更新如下(文字加粗部分):

{

"name": "node_project",

"version": "1.0.0",

"description": "",

"main": "dist/app.js",

"scripts": {

"start": "tsc && node dist/app.js",

"lint": "eslint . --ext .ts",

"test": "echo \"Error: no test specified\" && exit 1"

},

"keywords": [],

"author": "",

"license": "ISC",

"devDependencies": {

"@types/express": "^4.17.13",

"@typescript-eslint/eslint-plugin": "^5.4.0",

"@typescript-eslint/parser": "^5.4.0",

"eslint": "^8.3.0",

"typescript": "^4.5.2"

},

"dependencies": {

"express": "^4.17.2"

}

}

上面的更新中,添加了main,scripts中的start和lint,以便于编译,检查和运行你的项目。例如,运行

npm start

它将先编译typescript代码为JS代码,然后运行生成的JS代码。

结论

在本教程中,介绍了如何用Typescript快速开始构建一个Node项目,如何用tsconfig.json配置Typescript的编译选项,如何使用命令转译以.ts结尾的文件成js文件以及使用eslint检查Typescript语法等。在此基础上,你可以构建复杂的,强类型,健壮的NodeJS应用。

最近发表
标签列表