Ecmascript 6 如何抑制流符号错误?
我正在尝试在流中为我的一个对象创建类型定义。我不确定流是否支持Ecmascript 6 如何抑制流符号错误?,ecmascript-6,babeljs,flowtype,Ecmascript 6,Babeljs,Flowtype,我正在尝试在流中为我的一个对象创建类型定义。我不确定流是否支持符号,但在这种情况下,如何跳过此警告 const version: Version = this.getVersion(12345); const upLink: string = version[Symbol.for('__my_amazing_symbol')]; 但是在验证上面的行时,我在运行流检查时出现以下错误 Error: src/local.js:197 197: const upLink
符号
,但在这种情况下,如何跳过此警告
const version: Version = this.getVersion(12345);
const upLink: string = version[Symbol.for('__my_amazing_symbol')];
但是在验证上面的行时,我在运行流检查时出现以下错误
Error: src/local.js:197
197: const upLink: string = version[Symbol.for('__my_amazing_symbol')];
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ access of computed property/element. Computed property cannot be accessed with
197: const upLink: string = version[Symbol.for('__my_amazing_symbol')];
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Symbol
Found 2 errors
这是我喜欢的类型
declare export type Version = {
name: string;
version: string;
};
流程配置
[ignore]
.*/node_modules/.*
lib/.*
[include]
[libs]
node_modules/@mod/types/lib/
[lints]
[options]
suppress_comment= \\(.\\|\n\\)*\\$FlowFixMe
unsafe.enable_getters_and_setters=true
[version]
^0.52.0
我认为类型错误与Symbol
本身无关。Flow告诉您的是,您使用键name
和Version
声明了Version
类型,但现在您正在该对象上查找一个符号,它不是该类型的一部分。如果执行version[“randomString”]
,则会出现类似错误,因为该属性未声明为version
类型的一部分
正如另一条评论所提到的,您可以使用$FlowFixMe
忽略错误。但是这个代码本身可能是不安全的,因为您依赖于在这个对象上定义的额外符号,但不让流证明它。您可以尝试以一种避免进行这些动态查找的方式对版本
类型进行建模
(编辑:啊,好吧,看起来我说得太快了。Flow不喜欢使用计算机符号键,尽管理论上它可以检查它们。请查看此问题:)您是否在行前尝试过/$FlowFixMe,我在您的配置中看到了它也请编辑您的问题标题,应该是:如何抑制流符号错误?/$FlowFixMe应该是有效答案。:)它对我有用。感谢您的建议,我将更新标题。是的,我知道缺少对符号的支持,同时/$FlowFixMe
解决了这个问题。我希望Facebook能尽快解决这个问题。