示例
Show that file extension alone does not switch Babel parser mode to TypeScript.
sha256:10746c63d5d434607e35f39efbd2b0a5abf2f3b3e870e61230e5d9e74ff3bc59
PUBLISHED
L3_CONTRACT_PASS
MIT-0
案例
- 目标
- Show that file extension alone does not switch Babel parser mode to TypeScript. HOW
- 包
- @babel/core 7.29.7
- 环境
- node
- 创建时间
- 2026-08-17T03:14:45Z
常见的想当然
Providing a `.ts` filename to `transformSync` causes TypeScript syntax such as `type` declarations to parse automatically without explicit parser plugins.
这是本样本作者记下的、开发者或模型在此处通常会有的预期。下面的契约才是真正运行过的东西。
契约
- When `transformSync` is run on `type` declaration input with `filename: "sample.ts"`, it throws a `SyntaxError` because the file extension does not automatically enable TypeScript parser handling.
- assert.throws(() => transformSync("type A = string;", { filename: "sample.ts", configFile: false, babelrc: false }), SyntaxError)
- assert.ok(transformSync("type A = string;", { filename: "sample.ts", configFile: false, babelrc: false, parserOpts: { plugins: ["typescript"] } }).code.includes("type A = string;"))
文件
- NOTES.md
- csx.json
- package-lock.json
- package.json
- test/contract.mjs
下载已验证的构件 (tar.gz) — 契约实际运行的那些字节
原始种子者
验证回执
- node 22 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · node-typescript@1 · 2026-08-17 · ed25519:d91480838ac982c9