如何解决TSLint禁止使用非箭头函数的报错问题
解决TSLint禁止使用传统非箭头函数的报错
问题原因
你遇到的ERROR: non-arrow functions are forbidden报错,来自TSLint的only-arrow-functions规则——该规则被你继承的tslint-config-standard配置启用,强制要求所有函数使用箭头函数写法,但你因需要正确的this指向,必须保留传统函数写法。
解决方案
你可以通过修改tslint.json的规则配置来解决,有两种可选方案:
方案1:完全关闭该规则
在rules对象中添加如下配置,彻底禁用only-arrow-functions规则:
"rules": { // 已有的其他规则... "only-arrow-functions": false }
方案2:允许特定场景的传统函数(推荐)
如果你想保留大部分箭头函数的规范,仅放开需要使用this或命名函数的场景,可以配置规则的例外选项:
"rules": { // 已有的其他规则... "only-arrow-functions": [ true, "allow-declarations", // 允许命名函数声明(如function myFunction() {}) "allow-methods" // 允许类成员方法、对象字面量方法(这些场景依赖this指向) ] }
该配置会允许你使用:
- 命名的传统函数声明(比如你示例中的
function myFunction () {}) - 类的成员方法、对象字面量中的方法(这些场景下
this指向符合预期)
其他场景仍然会强制使用箭头函数,兼顾代码规范和你的业务需求。
验证修改
修改完成后,重新运行yarn lint命令,即可确认报错已解决。
内容的提问来源于stack exchange,提问作者Sandeep Amarnath
相关产品推荐
相关产品推荐

