← [ BACK_TO_NOTES ]

TypeScript 中的 alwaysStrict

说明 alwaysStrict 为什么会让 TypeScript 以 ECMAScript strict mode 解析文件并输出 use strict,以及它和 strict 的关系。

#dev #typescript #concept #growing

[!info] related notes

TypeScript 中的 alwaysStrict

一句话定义

alwaysStrict 会让 TypeScript:

  • 按 ECMAScript strict mode 解析文件
  • 并在输出里为每个源文件 emit "use strict"

核心机制 / 工作原理

官方文档的定义非常直接:

  • parsed in the ECMAScript strict mode
  • emit "use strict" for each source file

这说明它同时影响两层:

  • 解析阶段的语义
  • 输出阶段的 strict mode 指令

最小例子 / 最小场景

{
  "compilerOptions": {
    "alwaysStrict": true
  }
}

在这种情况下,TypeScript 会把源码始终当成 strict mode 语境来理解,并在输出 JS 文件顶部加上:

"use strict";

边界与易混淆点

它和 strict 不是同一层

strict 更偏:

  • 类型检查严格性总开关

而 alwaysStrict 更偏:

  • JavaScript 解析 / emit 时是否处于 ECMAScript strict mode

但它通常跟着 strict 一起开

官方 TSConfig 参考页当前写明:

  • true if strict; false otherwise

所以很多项目并不会单独显式写它。

它更接近运行时语义背景,而不是单纯类型规则

严格模式会影响某些 JavaScript 行为是否抛错、某些静默失败是否变成显式错误。

参考信息

创建于 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
关闭浮层 / 取消命令;输入框内清空文本