如何配置TSLint使大括号单独换行并支持类成员Allman风格
解决TSLint兼容类成员对象Allman风格与现有写法的配置方案
刚好碰到过类似的问题,咱们一步步来解决:
首先,你需要调整brace-style规则的配置,让它既能支持类成员对象的Allman风格大括号(左大括号单独占一行),又兼容你现有的箭头函数、普通对象单行大括号写法。
具体配置步骤
在你的tslint.json文件里,找到rules节点,修改brace-style的配置如下:
{ "rules": { "brace-style": [ true, "allman", { "allowSingleLine": true } ] } }
这个配置的作用:
"allman":指定默认使用Allman风格,类成员对象这类场景下,左大括号需单独换行"allowSingleLine": true:允许单行大括号的写法,这样你现有的const foo = () => { };和const foo = { a: 10, b: 20 };就不会触发报错
额外检查:排查冲突规则
如果配置后还是有报错,看看是不是object-literal-newline规则在搞事情——这个规则会强制对象字面量的属性换行,如果不需要这个限制,把它设为false或者直接从规则里删掉:
{ "rules": { // ...其他规则 "object-literal-newline": false } }
效果验证
配置完成后,这几种写法都会被TSLint接受:
- 类成员对象的Allman风格:
export class Foo { private someObj = { a: 10, b: 20 }; }
- 你原来的箭头函数单行写法:
const foo = () => { };
- 普通对象的单行写法:
const foo = { a: 10, b: 20 };
内容的提问来源于stack exchange,提问作者sstchur
相关产品推荐
相关产品推荐

