【问题标题】:Can I ignore some type of errors using flow?我可以使用流忽略某些类型的错误吗?
【发布时间】:2018-12-26 05:23:17
【问题描述】:

我只想忽略某种类型的错误,或者在其上指定规则。就我而言,这是Cannot resolve name 类型错误。我可以设置全局变量吗? (外部调用代码)。

【问题讨论】:

    标签: flowtype


    【解决方案1】:

    是的,您可以使用库定义文件来执行此操作。例如:

    1. 创建一个文件夹并将其命名为definitions
    2. .flowconfig[libs] 部分下添加此文件夹
    3. definitions 中创建一个文件,并将其命名为globals.js

    在这个globals.js 文件(或definitions 文件夹内的任何文件)内,您可以编写声明。您可以在此处查看执行此操作的确切语法:https://flow.org/en/docs/libdefs/creation/

    例如,如果我想声明一个全局 age 变量存在,我会在我的 globals.js 文件中包含这个:

    declare var age: number;
    

    你也可以声明复杂的对象:

    declare type Person = {
      name: string,
      age: number
    };
    
    declare var person: Person;
    

    如果不知道全局变量是什么类型,可以设置为any

    declare var weirdThing: any;
    

    如果全局变量来自流行的第 3 方库,您可能可以安装一些库定义来自动获取有关它的类型信息并停止流错误。如果您还没有,请查看flow-typed


    供参考:

    使用我上面展示的示例,您的文件夹结构将类似于:

    .
    ├── .flowconfig
    ├── definitions
    │   └── globals.js
    ├── package.json
    └── src
    

    你的.flowconfig 内容看起来像:

    [ignore]
    
    [include]
    
    [libs]
    definitions
    
    [lints]
    
    [options]
    
    [strict]    
    

    【讨论】:

    • 您需要使用抑制 cmets。为他们查看docs
    • 谢谢。是否可以在一个地方忽略配置中的规则?
    • 你不能在那个地方使用禁止评论吗?还是我误解了你的问题? (您最好打开一个新问题以了解更多细节)
    • 我认为新问题将与这个问题重复。我想在配置中禁用一条规则。我不想到处使用禁止评论。
    • 您是说要在一个文件中禁用该配置规则吗?还是您只想在任何地方禁用该配置规则?您能否分享一下您试图禁用的确切规则只是为了获得一些上下文?
    【解决方案2】:

    // $FlowFixMe 放在相关行之前,将抑制 Flow v0.33 或更高版本的错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-06
      • 1970-01-01
      • 1970-01-01
      • 2016-11-04
      • 1970-01-01
      • 2015-06-26
      相关资源
      最近更新 更多