Typescript TS2532-对象可能未定义

Typescript TS2532-对象可能未定义,typescript,Typescript,如何停用此选项或解决此问题?直到现在它才给了我这个错误。谢谢大家! 错误:Typescript TS2532-对象可能未定义。我们不知道您的具体类型,但可能未定义错误或endereco。您可以通过以下方式处理此问题: <Form.Field> <label>Rua</label> <input name='endereco.rua' value={user.endereco.rua} onChange={(e)=>

如何停用此选项或解决此问题?直到现在它才给了我这个错误。谢谢大家!


错误:Typescript TS2532-对象可能未定义。

我们不知道您的具体类型,但可能未定义错误或endereco。您可以通过以下方式处理此问题:

    <Form.Field>
      <label>Rua</label>
      <input name='endereco.rua' value={user.endereco.rua}  onChange={(e)=>handleInputChange(e)} placeholder='Insira sua Rua' />
      {errors.endereco.rua !== '' && <ErrorMessage>{errors.endereco.rua}</ErrorMessage>}

    </Form.Field>

     <Form.Field>
      <label>Numero</label>
      <input name='endereco.numero' type='number'   onChange={(e)=>handleInputChange(e)} placeholder='Insira seu numero' />
      {errors.endereco.numero !==  undefined  && <ErrorMessage>{errors.endereco.numero}</ErrorMessage>}

    </Form.Field>

  export  interface Errors{
    name?: string;
    password?: string;
    email?: string;
    cpf?: string;
    endereco?: {
        cep?: string;
        cidade?: string;
        bairro?: string;
        rua?: string;
        numero?: string;
    }

   }

基本上,如果该链上的任何值未定义,那么它将短路&&条件,并且不会在那里呈现任何内容。但是,如果所有的值都已定义,那么元素将被呈现。

我已将我的接口添加到问题中。@Helcioolivera:这些属性中的任何一个确实可以是未定义的,这就是问题所在?在属性中,名称是指。上面的代码应该成功地检查未定义的值。我能做什么?它根本不需要未定义。我是打字新手。我只是想展示我的才华message@HelcioOliveira:如果属性永远不应未定义,则删除?从财产名称上看,它起作用了。非常感谢你。我感谢你的帮助!
{errors && errors.endereco && <ErrorMessage>{errors.endereco.rua}</ErrorMessage>}
{errors && errors.endereco && errors.endereco.rua && <ErrorMessage>{errors.endereco.rua}</ErrorMessage>}