We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
俗话说得好「工欲善其事,必先利其器」,我们在上一节已经搭建好了基础的 TypeScript 环境,并写下了第一行 TypeScript 代码,但是这并不足以支持大家日常的开发,在本节我们将搭建一个在生产环境可用的 TypeScript 环境,以此帮助大家了解 TypeScript 的工具生态.
除此之外,我们还会推荐一些 TypeScript 快速启动的库帮助大家免去搭建环境的烦恼,那么既然都已经有了相关的快速启动库了,为什么我们还要从头搭建环境呢?
原因在于所有的库都是搭建好的,定制性很差,我们如果真的想成为一名合格的 TypeScript 使用者必须要学会搭建环境,不然一方面我们没有任何搭建环境的能力,一旦有一些特殊要求,我们连拓展环境都做不到,另一方面,开发过程中很多错误或者警告其实不是代码本身有问题,而是环境出现了问题,如果我们不懂环境方面的问题,会浪费很多时间.
在正式开始之前我们需要思考一下,一个正式的 TypeScript 开发环境至少需要哪些要素呢?
当然还有版本管理工具、持续集成工具、代码美化工具等等,但这些跟 TypeScript 相关性并不大,并非我们的重点.
如果你对VS Code感兴趣的话,可以去官网进行下载.
注意: 在下载 VS Code 之前请确保已经安装最新版的 Node
TS Importer是一个非常实用的 VS Code 插件,它的作用在于可以帮助开发者自动引入模块.
这个插件在编写依赖关系相对复杂的项目时非常有用,节省了我们手动引入模块的时间,而且最大程度规避了犯错的可能.
如果你想定制引入的格式,比如不想使用分号,你可以: 设置->搜索 tsimporter ,进行编辑即可,你可以选择是否用分号,是否用双引号等等.
tsimporter
在我们移动一个文件的时候会有一个问题,我们的文件位置发生变化,相对引入模块的路径也会发生变化,这个是如果引入的路径很多,那么要一个个去改吗?
这就要借助Move TS这个插件.
它可以帮助开发者自动计算移动后的模块引入路径,是提升效率的利器.
顾名思义,这是 TypeScript 的一个工具箱,主要有两个作用: 自动引入模块和生成getter/setter/Constructors.
getter/setter/Constructors
自动引入模块:
生成getter/setter:
Jest 是一款由 Facebook 开源的大而全的测试框架,它的特点是开箱即用,功能强大,目前三大框架全部采用 Jest 测试,它有如下优点:
我们先下载下列 npm 模块:
npm i jest @types/jest ts-jest -D
我们稍微解释一下:
@types/jest
随后我们在项目的根目录创建文件jest.config.js:
jest.config.js
module.exports = { "roots": [ "<rootDir>/src" ], "transform": { "^.+\\.tsx?$": "ts-jest" }, }
src/
ts-jest
tsx/ts
接着我们在 package.json 下修改如下:
package.json
"scripts": { ... "test": "jest", "test:c": "jest --coverage", "test:w": "jest --watchAll --coverage" },
我们开始写一段简单的代码进行测试 src/foo.ts:
src/foo.ts
export const sum = (a: number) => (b: number) => a + b;
然后新建一个 __test__ 目录存放测试文件,在 foo.test.ts 下:
__test__
foo.test.ts
import { sum } from '../foo'; test('basic', () => { expect(sum(1)(2)).toBe(3); });
import { sum } from '../foo';
test('basic', () => { expect(sum(1)(2)).toBe(3); });
然后运行 npm run test:
npm run test
TSLint 长期以前是 TypeScript 主要的代码检测工具,但是由于一些性能问题 TypeScript 官方支持了 ESLint,随后 TSLint 作者宣布放弃 TSLint:
因此 ESLint 现在已经是事实上 TypeScript 的 Linter ,我们先下载以下模块:
npm i eslint eslint-plugin-react @typescript-eslint/parser @typescript-eslint/eslint-plugin -D
以上各个模块说明如下: ��
在项目的根目录下创建 .eslintrc.js:
.eslintrc.js
module.exports = { parser: '@typescript-eslint/parser', settings: { react: { version: 'detect' } }, parserOptions: { project: './tsconfig.json', }, plugins: ['@typescript-eslint'], extends: [ 'plugin:react/recommended', 'plugin:@typescript-eslint/recommended', ], rules: { "@typescript-eslint/explicit-function-return-type": "off", } }
在 package.json 添加如下:
"scripts": { ... "lint": "eslint \"src/**\"", "lint:f": "eslint \"src/**\" --fix " },
npm run lint
npm run lint:f
用 VS Code 调试代码是很简单的事情,首先我们点击调式按钮:
然后选择 node 环境:
配置调试环境:
{ "name": "node", "type": "node", "request": "launch", "program": "${workspaceRoot}/dist/foo.js", //注意,这个路径必须是需要调试的文件`src/foo.ts`的编译后的路径即`/dist/foo.js` "args": [], "cwd": "${workspaceRoot}", "protocol": "inspector" }
我们就可以进行调试了:
我们现在已经搭建了一个可用的 TypeScript 开发环境,当然我们可以进一步完善它,但是这些内容与 TypeScript 本身的关系不大,如果你感兴趣的话,我们已经把完整的代码发布在了github上,你可以直接下载使用.
如果你想编写一个成熟的TypeScript库,那么可以使用以下两个 starter 之一:
The text was updated successfully, but these errors were encountered:
No branches or pull requests
搭建 TypeScript 正式工作环境
俗话说得好「工欲善其事,必先利其器」,我们在上一节已经搭建好了基础的 TypeScript 环境,并写下了第一行 TypeScript 代码,但是这并不足以支持大家日常的开发,在本节我们将搭建一个在生产环境可用的 TypeScript 环境,以此帮助大家了解 TypeScript 的工具生态.
除此之外,我们还会推荐一些 TypeScript 快速启动的库帮助大家免去搭建环境的烦恼,那么既然都已经有了相关的快速启动库了,为什么我们还要从头搭建环境呢?
原因在于所有的库都是搭建好的,定制性很差,我们如果真的想成为一名合格的 TypeScript 使用者必须要学会搭建环境,不然一方面我们没有任何搭建环境的能力,一旦有一些特殊要求,我们连拓展环境都做不到,另一方面,开发过程中很多错误或者警告其实不是代码本身有问题,而是环境出现了问题,如果我们不懂环境方面的问题,会浪费很多时间.
生产环境要素
在正式开始之前我们需要思考一下,一个正式的 TypeScript 开发环境至少需要哪些要素呢?
当然还有版本管理工具、持续集成工具、代码美化工具等等,但这些跟 TypeScript 相关性并不大,并非我们的重点.
配置文本编辑器
如果你对VS Code感兴趣的话,可以去官网进行下载.
��安装插件 TS Importer
TS Importer是一个非常实用的 VS Code 插件,它的作用在于可以帮助开发者自动引入模块.
这个插件在编写依赖关系相对复杂的项目时非常有用,节省了我们手动引入模块的时间,而且最大程度规避了犯错的可能.
如果你想定制引入的格式,比如不想使用分号,你可以: 设置->搜索
tsimporter
,进行编辑即可,你可以选择是否用分号,是否用双引号等等.安装插件 Move TS
在我们移动一个文件的时候会有一个问题,我们的文件位置发生变化,相对引入模块的路径也会发生变化,这个是如果引入的路径很多,那么要一个个去改吗?
这就要借助Move TS这个插件.
它可以帮助开发者自动计算移动后的模块引入路径,是提升效率的利器.
安装插件 TypeScript Toolbox
顾名思义,这是 TypeScript 的一个工具箱,主要有两个作用: 自动引入模块和生成
getter/setter/Constructors
.自动引入模块:
生成getter/setter:
为 TypeScript 添加测试
Jest 是一款由 Facebook 开源的大而全的测试框架,它的特点是开箱即用,功能强大,目前三大框架全部采用 Jest 测试,它有如下优点:
我们先下载下列 npm 模块:
我们稍微解释一下:
@types/jest
是为 jest 添加类型声明的 npm 包随后我们在项目的根目录创建文件
jest.config.js
:src/
ts-jest
来测试tsx/ts
文件接着我们在
package.json
下修改如下:src/
目录下所有符合要求的文件进行测试我们开始写一段简单的代码进行测试
src/foo.ts
:然后新建一个
__test__
目录存放测试文件,在foo.test.ts
下:然后运行
npm run test
:代码检查
TSLint 长期以前是 TypeScript 主要的代码检测工具,但是由于一些性能问题 TypeScript 官方支持了 ESLint,随后 TSLint 作者宣布放弃 TSLint:
因此 ESLint 现在已经是事实上 TypeScript 的 Linter ,我们先下载以下模块:
以上各个模块说明如下: ��
在项目的根目录下创建
.eslintrc.js
:在
package.json
添加如下:npm run lint
: 检测src/
项目的代码npm run lint:f
: 检测src/
项目的代码并自动修复代码调试
用 VS Code 调试代码是很简单的事情,首先我们点击调式按钮:
然后选择 node 环境:
配置调试环境:
我们就可以进行调试了:
小结
我们现在已经搭建了一个可用的 TypeScript 开发环境,当然我们可以进一步完善它,但是这些内容与 TypeScript 本身的关系不大,如果你感兴趣的话,我们已经把完整的代码发布在了github上,你可以直接下载使用.
如果你想编写一个成熟的TypeScript库,那么可以使用以下两个 starter 之一:
The text was updated successfully, but these errors were encountered: