两种编译方式

第一种babel

依赖

需要安装 @babel/preset-typescript @babel/preset-env @babel/core babel-loader core-js@3 typescript

项目配置

webpack

  1. module:{
  2. rules:[
  3. {
  4. test: /\.ts$/,
  5. use: ['babel-loader']
  6. }
  7. ]
  8. }

babel.config.js

  1. module.exports = {
  2. presets: [
  3. ['@babel/preset-env', {
  4. useBuiltIns: 'usage',
  5. corejs: 3
  6. }],
  7. ['@babel/preset-typescript']
  8. ]
  9. }

.browserslistrc

  1. > 1%
  2. last 2 version
  3. not dead

缺点

无法静态检测

优点

能够提供更好的js语法兼容

第二种ts-loader

依赖

需要安装 ts-loader

项目配置

webpack

  1. module:{
  2. rules:[
  3. {
  4. test: /\.ts$/,
  5. use: ['ts-loader']
  6. }
  7. ]
  8. }

缺点

无法提供良好的js语法兼容

优点

能够提供静态语法检测