目录
- 前言
- 回顾类型声明文件与异步编程
- [1. tsconfig.json 高级配置](#1. tsconfig.json 高级配置)
-
- [a. 基本配置](#a. 基本配置)
- [b. 高级配置选项](#b. 高级配置选项)
- [2. 使用 Webpack 构建 TypeScript 项目](#2. 使用 Webpack 构建 TypeScript 项目)
-
- [a. 安装依赖](#a. 安装依赖)
- [b. 配置 Webpack](#b. 配置 Webpack)
- [3. 使用 Babel 编译 TypeScript](#3. 使用 Babel 编译 TypeScript)
-
- [a. 安装依赖](#a. 安装依赖)
- [b. 配置 Babel](#b. 配置 Babel)
- [c. 配置 Webpack 使用 Babel](#c. 配置 Webpack 使用 Babel)
- [4. 使用 ESLint 和 TSLint](#4. 使用 ESLint 和 TSLint)
-
- [a. 安装 ESLint](#a. 安装 ESLint)
- [b. 配置 ESLint](#b. 配置 ESLint)
- [5. 使用 Prettier 格式化代码](#5. 使用 Prettier 格式化代码)
-
- [a. 安装 Prettier](#a. 安装 Prettier)
- [b. 配置 Prettier](#b. 配置 Prettier)
- [6. 使用 Jest 测试 TypeScript](#6. 使用 Jest 测试 TypeScript)
-
- [a. 安装 Jest](#a. 安装 Jest)
- [b. 配置 Jest](#b. 配置 Jest)
- [c. 编写测试](#c. 编写测试)
- [7. 使用 Mocha 和 Chai 测试 TypeScript](#7. 使用 Mocha 和 Chai 测试 TypeScript)
-
- [a. 安装 Mocha 和 Chai](#a. 安装 Mocha 和 Chai)
- [b. 配置 Mocha](#b. 配置 Mocha)
- [c. 编写测试](#c. 编写测试)
- [8. TypeScript 与前端框架集成](#8. TypeScript 与前端框架集成)
-
- [a. TypeScript 与 React](#a. TypeScript 与 React)
- [b. TypeScript 与 Angular](#b. TypeScript 与 Angular)
- [c. TypeScript 与 Vue](#c. TypeScript 与 Vue)
- 结语
前言
在前几章中,我们学习了 TypeScript 的基础知识、函数与对象类型、接口与类、泛型编程、模块与命名空间、装饰器与高级类型操控,以及类型声明文件与异步编程。在本章中,我们将深入探讨 TypeScript 的项目配置、代码质量和与前端框架的集成。了解这些内容,将帮助你在实际项目中更好地应用 TypeScript。
系列文章列表
回顾类型声明文件与异步编程
在上一章中,我们学习了以下内容:
- 类型声明文件:包括编写和使用类型声明文件。
- 异步编程:包括 Promise 类型、async/await 和异步迭代器、并行执行与错误处理。
正文开始
,如果觉得文章对您有帮助,请帮我三连+订阅,谢谢
💖💖💖
1. tsconfig.json 高级配置
tsconfig.json
是 TypeScript 项目的配置文件,包含了编译选项。
a. 基本配置
json
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"strict": true,
"esModuleInterop": true
}
}
b. 高级配置选项
json
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"strict": true,
"esModuleInterop": true,
"baseUrl": "./",
"paths": {
"*": ["node_modules/*"]
},
"rootDirs": ["src", "tests"],
"outDir": "./dist",
"sourceMap": true,
"declaration": true,
"noImplicitAny": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"noUnusedLocals": true,
"noUnusedParameters": true
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist"]
}
2. 使用 Webpack 构建 TypeScript 项目
Webpack 是一个模块打包工具,可以用来构建 TypeScript 项目。
a. 安装依赖
bash
npm install --save-dev webpack webpack-cli ts-loader
b. 配置 Webpack
javascript
// webpack.config.js
const path = require('path');
module.exports = {
entry: './src/index.ts',
module: {
rules: [
{
test: /\.ts$/,
use: 'ts-loader',
exclude: /node_modules/
}
]
},
resolve: {
extensions: ['.ts', '.js']
},
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist')
}
};
3. 使用 Babel 编译 TypeScript
Babel 是一个 JavaScript 编译器,也可以用来编译 TypeScript。
a. 安装依赖
bash
npm install --save-dev @babel/core @babel/preset-env @babel/preset-typescript babel-loader
b. 配置 Babel
javascript
// babel.config.js
module.exports = {
presets: [
'@babel/preset-env',
'@babel/preset-typescript'
]
};
c. 配置 Webpack 使用 Babel
javascript
// webpack.config.js
const path = require('path');
module.exports = {
entry: './src/index.ts',
module: {
rules: [
{
test: /\.ts$/,
use: 'babel-loader',
exclude: /node_modules/
}
]
},
resolve: {
extensions: ['.ts', '.js']
},
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist')
}
};
4. 使用 ESLint 和 TSLint
ESLint 和 TSLint 是两个用于检查代码质量的工具,TSLint 专门用于 TypeScript,但已被弃用,建议使用 ESLint。
a. 安装 ESLint
bash
npm install --save-dev eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin
b. 配置 ESLint
javascript
// .eslintrc.js
module.exports = {
parser: '@typescript-eslint/parser',
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended'
],
parserOptions: {
ecmaVersion: 2020,
sourceType: 'module'
},
rules: {
// 自定义规则
}
};
5. 使用 Prettier 格式化代码
Prettier 是一个代码格式化工具,支持多种语言,包括 TypeScript。
a. 安装 Prettier
bash
npm install --save-dev prettier
b. 配置 Prettier
创建 .prettierrc
文件:
json
{
"semi": true,
"singleQuote": true,
"printWidth": 80
}
6. 使用 Jest 测试 TypeScript
Jest 是一个 JavaScript 测试框架,也可以用来测试 TypeScript 代码。
a. 安装 Jest
bash
npm install --save-dev jest @types/jest ts-jest
b. 配置 Jest
javascript
// jest.config.js
module.exports = {
preset: 'ts-jest',
testEnvironment: 'node'
};
c. 编写测试
typescript
// src/sum.ts
export function sum(a: number, b: number): number {
return a + b;
}
// tests/sum.test.ts
import { sum } from '../src/sum';
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
7. 使用 Mocha 和 Chai 测试 TypeScript
Mocha 是一个 JavaScript 测试框架,Chai 是一个断言库。
a. 安装 Mocha 和 Chai
bash
npm install --save-dev mocha chai ts-node @types/mocha @types/chai
b. 配置 Mocha
json
// package.json
{
"scripts": {
"test": "mocha -r ts-node/register tests/**/*.test.ts"
}
}
c. 编写测试
typescript
// src/sum.ts
export function sum(a: number, b: number): number {
return a + b;
}
// tests/sum.test.ts
import { expect } from 'chai';
import { sum } from '../src/sum';
describe('sum function', () => {
it('should add 1 and 2 to make 3', () => {
expect(sum(1, 2)).to.equal(3);
});
});
8. TypeScript 与前端框架集成
a. TypeScript 与 React
安装必要的依赖:
bash
npx create-react-app my-app --template typescript
cd my-app
npm start
编写 React 组件:
typescript
// src/App.tsx
import React from 'react';
interface AppProps {
message: string;
}
const App: React.FC<AppProps> = ({ message }) => {
return <h1>{message}</h1>;
};
export default App;
b. TypeScript 与 Angular
安装 Angular CLI 并创建 TypeScript 项目:
bash
npm install -g @angular/cli
ng new my-app
cd my-app
ng serve
编写 Angular 组件:
typescript
// src/app/app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
template: `<h1>{{title}}</h1>`,
})
export class AppComponent {
title = 'Hello, Angular with TypeScript!';
}
c. TypeScript 与 Vue
安装 Vue CLI 并创建 TypeScript 项目:
bash
npm install -g @vue/cli
vue create my-app
cd my-app
vue add typescript
npm run serve
编写 Vue 组件:
typescript
// src/components/HelloWorld.vue
<template>
<div>
<h1>{{ msg }}</h1>
</div>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
export default defineComponent({
name: 'HelloWorld',
props: {
msg: String,
},
});
</script>
结语
通过本章的学习,你应该对 TypeScript 的项目配置、代码质量和前端框架集成有了全面的了解。掌握这些内容,将帮助你在实际项目中更好地应用 TypeScript,并提高代码的质量和可维护性。希望你在整个专栏的学习中有所收获,能够在实际开发中充分利用 TypeScript 提供的强大功能。