Babel预设TypeScript实战解析与常见坑点分享

♫乙涵 工具 阅读 2,611
赞 41 收藏
二维码
手机扫码查看
反馈

先看效果,再看代码

今天来聊聊 @babel/preset-typescript,这个东西在前端开发里挺火的。我之前在一个项目里用了它,感觉还不错,所以想分享一下我的使用经验。

Babel预设TypeScript实战解析与常见坑点分享

核心代码就这几行

首先,我们来看一下怎么配置 Babel 来转译 TypeScript 代码。以下是一个简单的配置示例:

// babel.config.json
{
  "presets": [
    "@babel/preset-env",
    "@babel/preset-typescript"
  ]
}

这个配置文件告诉 Babel 使用 @babel/preset-env@babel/preset-typescript 这两个预设。@babel/preset-env 是用来转译 ES6+ 代码的,而 @babel/preset-typescript 则是专门处理 TypeScript 代码的。

一个完整的例子

接下来,我们来看一个完整的例子。假设你有一个简单的 TypeScript 项目,目录结构如下:

my-project/
├── src/
│   └── index.ts
├── package.json
└── babel.config.json

index.ts 文件内容如下:

// src/index.ts
const message: string = 'Hello, TypeScript with Babel!';
console.log(message);

然后我们在 package.json 中添加一个脚本来运行 Babel:

{
  "scripts": {
    "build": "babel src --out-dir dist"
  }
}

运行 npm run build 后,你会在 dist 目录下看到编译后的 JavaScript 文件:

// dist/index.js
const message = 'Hello, TypeScript with Babel!';
console.log(message);

踩坑提醒:这三点一定注意

在实际使用中,我遇到了一些坑点,这里给大家提个醒:

  • 类型注解会被移除@babel/preset-typescript 只会把 TypeScript 代码转译成 JavaScript 代码,类型注解会被移除。如果你需要保留类型信息(比如用于编辑器提示),可以考虑使用 tsc 编译后再用 Babel 处理。
  • 配置文件路径问题:有时候你会发现 Babel 没有正确加载配置文件。确保你的 babel.config.json 文件在项目的根目录下,并且文件名和格式都正确。
  • 依赖安装问题:确保你已经安装了所有必要的依赖包。例如,你需要安装 @babel/core@babel/cli,不然 Babel 无法正常工作。你可以通过以下命令安装这些依赖:
npm install --save-dev @babel/core @babel/cli @babel/preset-typescript

高级技巧:结合其他插件

除了基本的转译功能,@babel/preset-typescript 还可以和其他 Babel 插件配合使用,以实现更强大的功能。比如,你可以使用 @babel/plugin-proposal-class-properties 来支持类属性:

// babel.config.json
{
  "presets": [
    "@babel/preset-env",
    "@babel/preset-typescript"
  ],
  "plugins": [
    "@babel/plugin-proposal-class-properties"
  ]
}

这样,你就可以在 TypeScript 代码中使用类属性了:

// src/index.ts
class MyClass {
  myProperty = 'Hello, Class Properties!';
}

const instance = new MyClass();
console.log(instance.myProperty);

编译后的代码也会包含类属性的支持:

// dist/index.js
class MyClass {
  constructor() {
    this.myProperty = 'Hello, Class Properties!';
  }
}

const instance = new MyClass();
console.log(instance.myProperty);

总结一下

以上就是我对 @babel/preset-typescript 的一些使用经验和踩坑点。这个工具在很多场景下都非常有用,特别是在需要将 TypeScript 代码转译成普通 JavaScript 代码时。不过,要注意它的局限性,比如类型注解会被移除等。希望这些经验对你有帮助。

这个技术的拓展用法还有很多,后续我会继续分享这类博客。如果你有更好的实现方式或者遇到过其他坑点,欢迎在评论区交流。

本文章不代表JZTHEME立场,仅为作者个人观点 / 研究心得 / 经验分享,旨在交流探讨,供读者参考。
发表评论
夏侯广云
作者的分享很真诚,没有夸大其词,都是实实在在的经验,让人觉得很靠谱。
点赞 5
2026-02-09 09:25