使用Typescript在Reactjs中出现“重复的字符串索引签名”错误

时间:2019-03-24 08:17:22

标签: reactjs typescript mobx

我在Reactjs上使用Typescript创建了一个对象。
下面是代码。
但这会使UserInformation数据从密码到姓氏出现此错误。
你能给我一些建议吗?

  

重复的字符串索引签名

SELECT eventdata.S_ID, eventdata.eventyear,
     max (education.qual_Level) as highqual
FROM education
  left join eventdata
  ON education.S_ID = eventdata.S_ID
  WHERE  education.YearQual<= eventyear 
  GROUP BY eventyear, qual_level, eventdata.S_ID

2 个答案:

答案 0 :(得分:1)

当您知道特定对象的类型时,TypeScript允许您使用与ISignStore定义的接口。遵循UserInformation的相同模式,类型为:

interface IUserInformation {
  email: string;
  password: string;
  firstName: string;
  lastName: string;
}

另一方面,您当前使用的语法称为Index Signature

interface IObject {
  [k: number]: string
}

这基本上是说您有一个对象,但是您不知道它将具有什么键;但是您确定键将是数字,而值将是字符串。这里的变量k只是一个占位符,您可以在该位置使用任何东西。因此,凭此优点,k2: number的第二个键没有用处。因为k: number已经涵盖了这种情况。

这是您在将emailpasswordfirstName定义为索引签名中的键时遇到的错误。它们只是基于string的密钥的重复。

答案 1 :(得分:0)

 UserInformation: {
    [email]: '',
    [password]: '',
    [firstName]: '',
    [lastName]: ''
  };

我认为您已经为这些东西指定了类型。