← [ BACK_TO_NOTES ]

TypeScript 中的 allowJs

说明 allowJs 如何让 TypeScript 项目接纳 .js 文件,以及它为什么常用于 JS 到 TS 的渐进迁移。

#dev #typescript #concept #growing

[!info] related notes

TypeScript 中的 allowJs

一句话定义

allowJs 允许 TypeScript 项目把 .js 文件也纳入 program,而不只接受 .ts / .tsx。

核心机制 / 工作原理

官方文档直接说明:

  • 开启后,JavaScript files can be imported inside your project

这意味着 TypeScript 不再把 .js 文件视为“项目外部世界”,而是允许它们和 .ts、.tsx 并存。

例如:

{
  "compilerOptions": {
    "allowJs": true
  }
}

之后:

import { defaultCardDeck } from "./card";

就可以合法地指向 card.js。

最小例子 / 最小场景

渐进迁移

allowJs 最常见的用途就是:

  • 先让旧 JS 项目被 TypeScript 理解
  • 再逐步把部分文件迁成 .ts

官方文档也明确把它描述成:

  • incrementally add TypeScript files into JS projects

边界与易混淆点

它不等于“开始检查 JS 报错”

allowJs 只是先让 .js 文件进来。

是否真的对 JS 文件报类型错误,更接近:

它也能和声明文件生成配合

官方文档还特别指出,它可以和:

  • declaration
  • emitDeclarationOnly

一起使用,用来为 JS 文件生成类型声明。

它常用于迁移,而不是最终结构的唯一目标

如果项目长期大量混用 JS/TS,却没有边界策略,后期类型体验还是容易混乱。

参考信息

创建于 2026/5/15 更新于 2026/7/15
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本