首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何制定自定义的eslint规则以检查方法是否在调用之前被调用?

如何制定自定义的eslint规则以检查方法是否在调用之前被调用?
EN

Stack Overflow用户
提问于 2019-10-23 17:12:04
回答 2查看 147关注 0票数 0

我有一个类,在开发人员调用a()之前,是否可能有一个eslint规则来检查b()是否被调用?

代码语言:javascript
复制
class A {
  a(){return this}
  b(){return this}
}
const c= new A();
c.a() // warning: b() has to be called before a()
c.b().a() // no eslint warning
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-23 17:53:07

如果您只希望允许链,则可以通过类型记录强制执行此操作。

基本上,使用类型记录,您可以这样键入它:

代码语言:javascript
复制
interface FullA {
    a(): FullA;
    b(): FullA;
}
interface ABeforeB {
    b(): FullA;
}

只需将类键入为ABeforeA而不是FullA

但是,如果您希望允许这样做:

代码语言:javascript
复制
c.b();
c.a();

没有办法在编译时检查这一点。在a()之前是否调用b()的唯一方法是执行程序。

下面是这样的一个简短的例子:假设这个程序:

代码语言:javascript
复制
const c = new A();
if(Math.random() > .5) {
  c.b();
}
c.a();

在这种情况下,在50%的情况下,你会有错误,在50%的情况下,它将工作良好。if子句可能是任意复杂的。

票数 2
EN

Stack Overflow用户

发布于 2019-10-23 17:15:45

模块是一个npm包,通常收费规则。另外,一些模块还发送了至少一个命名的安排。确保将捆绑包引入到ESLint可能需要的目录中。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58527904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档