一、初始化 NPM 项目
# npm npm init # git git init
二、安装 TypeScript
npm i typescript --save-dev # 查看版本 npx tsc --version
三、初始化配置文件 tsconfig.json
npx tsc --init
四、编译 .ts
新建 index.ts 文件。
项目目录:
├── package.json
├── tsconfig.json
└── src
    └── index.ts
文件 index.ts:
const ProjectName: string = 'new-typescript-project'
function say (): string {
  return This project is ${ProjectName}.
}
console.log(say())
编译:
npx tsc src/index.ts
结果:
var ProjectName = 'new-typescript-project';
function say() {
    return "This project is " + ProjectName + ".";
}
console.log(say());
监听文件变化:
npx tsc -w
五、使用 Webpack 打包
5.1 安装 Webpack
npm install webpack webpack-cli -D
5.2 安装 TypeScript 加载器 ts-loader
npm install ts-loader -D
5.3 配置 webpack.config.js
const path = require('path');
module.exports = {
  entry: './src/index.ts',
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'dist')
  },
  module:{
    rules:[
      {
        test: /\.tsx?$/,
        use: 'ts-loader',
        exclude: /node_modules/
      }
    ]
  },
  resolve: {
    extensions: ['.ts', '.tsx']
  }
};
5.4 打包
npx webpack --config webpack.config.js
六、使用 ESLint 规范代码
6.1 安装依赖
npm install --save-dev eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin
6.2 新增配置文件 .eslintrc
# shell
touch .eslintrc
# .eslintrc
{
  "root": true,
  "parser": "@typescript-eslint/parser",
  "plugins": [
    "@typescript-eslint"
  ],
  "extends": [
    "eslint:recommended",
    "plugin:@typescript-eslint/eslint-recommended",
    "plugin:@typescript-eslint/recommended"
  ]
}
6.3 配置忽略文件 .eslintignore
# shell touch .eslintignore # .eslintignore node_modules dist
6.4 package.json 中添加检测脚本
"lint": "eslint . --ext .ts"
6.5 运行检测
npm run lint
报错:
~/new-typescript-project/src/index.ts 1:7 error Type string trivially inferred from a string literal, remove type annotation @typescript-eslint/no-inferrable-types
修改相应代码:
- const ProjectName: string = 'new-typescript-project' + const ProjectName = 'new-typescript-project'
再次运行通过!
6.6 自动修复不规范的代码
脚本添加 --fix 选项:
"lint-and-fix": "eslint . --ext .ts --fix"
6.7 添加更多扩展文件
"lint-and-fix": "eslint . --ext 'ts,tsx' --fix"