如何在使用 prettier 的类中的方法声明前后添加新行?

Posted

技术标签:

【中文标题】如何在使用 prettier 的类中的方法声明前后添加新行?【英文标题】:How to add new line after and before method declarations in classes using prettier? 【发布时间】:2019-03-17 05:55:03 【问题描述】:

在 vs 代码编辑器中使用 prettier plugin 在 typescript 文件中的类中的方法声明前后添加新行需要配置哪些设置?

我们如何通过在.prettierrctslint.json 文件中写入任何规则来实现?

当前行为是

function one()
// some code

function two()
// some code

预期结果

function one()
// some code


function two()
// some code

我已尝试在 tslint.json

中使用以下行
"lines-between-class-methods": "true"

但没用

【问题讨论】:

【参考方案1】:

在你的 es-lint 规则中试试这个,

"lines-between-class-members" : ["error", "always"]

如果您违反条件,它将引发错误。 &我认为你必须在一个类中声明你的函数才能工作。

除此之外,您可能无法使用 prettier 自动修复,因为事实证明空行很难自动生成。 Prettier 采用的方法是保留原始源代码中的空行。

【讨论】:

没有帮助。我已添加到我的tslint.json 我认为这是一个 es-lint 规则......不确定它是否适用于 tslint.json。我可能是错的。【参考方案2】:

@lakshan 提到的是ESLint rule。有一个 TSLint 规则可以完成您正在寻找的内容,但与类方法有关。

https://github.com/chinchiheather/tslint-lines-between-class-members

运行

npm install --save-dev tslint-lines-between-class-members

添加

tslint.json


  "rulesDirectory": [
    "node_modules/tslint-lines-between-class-members"
  ],
  "rules": 
    "lines-between-class-members": true,
  

【讨论】:

【参考方案3】:

lines-between-class-members 是 ESLint 的内置,替代了现在已弃用的 TSLint。此规则适用于 TypeScript 和 javascript,并且支持 --fix。有关详细信息,请参阅https://eslint.org/docs/rules/lines-between-class-members。对于 TypeScript,您可能希望将 exceptAfterSingleLine 设置为 true。

要使 ESLint 为 TypeScript 工作,你必须安装 npm 包 @typescript-eslint/parser@typescript-eslint/eslint-plugin 并在你的 ESLint 配置中包含解析器和插件。见typescript-eslint docs。


  "parser": "@typescript-eslint/parser",
  "plugins": ["@typescript-eslint"],
  "rules": 
    "lines-between-class-members": ["error", "always",  "exceptAfterSingleLine": true ]
  

【讨论】:

以上是关于如何在使用 prettier 的类中的方法声明前后添加新行?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用在同一类的基模板中的类中声明的枚举

目标 C:我如何访问在我的 AppDelegate 中的另一个类中声明的类?

C ++:如何访问另一个类中的类函数?

如何在方法中使用本地类中的类成员?

在类中声明第一个字段属性之前添加额外的行

20165333 第五周学习总结