在Flow中的对象文字中找不到可索引签名

时间:2017-08-21 09:25:21

标签: flowtype

我有这个界面:

interface IFormData {
    [string]: string
};

export type { IFormData };

这是一个简单的接口,只接受键值字符串。但是当我使用它时,

const formData:IFormData = { email: '...', password: '...' };

它给了我这个错误:

  IFormData的

[flow]属性$key(在对象文字中找不到可索引签名)

我也试过这个,但它给了我同样的错误:

var formData: IFormData;    // Error
formData['email'] = ...;
formData['password'] = ...;

我在谷歌搜索了这差不多2天,但仍然停留在这里,我需要一些帮助!

任何建议都会非常感激。

1 个答案:

答案 0 :(得分:2)

如果你从interface切换到type,Flow似乎对这类事情更加满意:

type IFormData = {
    [string]: string
}

const formData: IFormData = { email: '...', password: '...' };

我猜测界面名义上是键入的,而不是结构上键入的,这与此有关。