如何阻止TypeScript编译器使用对象属性简写语法?
可行,有两种常见实现方式
1. 修改TypeScript编译目标为ES5
如果项目可以兼容ES5环境,直接在tsconfig.json里把target设为ES5:
{ "compilerOptions": { "target": "ES5" } }
因为ES5不支持对象属性简写语法,TypeScript会自动将{a,b,c}编译为{a:a, b:b, c:c}。
2. 用ESLint强制禁用简写(适用于ES6+目标)
如果需要编译到ES6+版本,可通过ESLint配合规则实现:
- 确保已配置好TypeScript的ESLint环境(安装好ESLint及相关TS插件)
- 在
.eslintrc里启用object-shorthand规则并设为never:
{ "rules": { "object-shorthand": ["error", "never"] } }
运行eslint --fix命令,ESLint会自动把所有对象属性简写展开为完整形式,之后再执行TS编译即可。
另外也可以用Babel的@babel/plugin-transform-object-shorthand插件配置禁用简写,但ESLint方案在TypeScript项目中更常用。
内容的提问来源于stack exchange,提问作者Gene Sy
相关产品推荐
相关产品推荐

