如何解构有时接收为 null 的对象 属性

How to destructurate an object property that sometimes is received as null

我在下面有这个对象,我通过 API 收到它,但有时 SimplesNacional 属性 为空。 仅当它不是 null 时,我该如何解构它 (??),因为它有一些嵌套属性会在解构过程中破坏我的程序?

这是对象:

const {
    Retorno: {
        ReceitaPJ: {
            NumeroInscricao: numeroInscricao,
            Matriz: matriz,
            DataAbertura: dataAbertura,
            NomeEmpresarial: nomeEmpresarial,
            NomeFantasia: nomeFantasia,
            NaturezaJuridica: naturezaJuridica,
            SituacaoCadastral: situacaoCadastral,
        },
        SimplesNacional: {
            SituacaoSimplesNacional: situacaoSimplesNacional,
            SituacaoSIMEI: situacaoSIMEI,
            SimplesNacionalPeriodosAnteriores: simplesNacionalPeriodosAnteriores,
            SIMEIPeriodosAnteriores,
            DataConsulta: dataConsulta,
        },
        CadastroPJ: {
            Telefones: telefones,
            Enderecos: enderecos,
            Emails: emails,
            Socios: socios,
        },
    },
} = response;

这是用法:

result.data = {
    cadastroPJ: {
        numeroInscricao,
        matriz,
        dataAbertura,
        nomeEmpresarial,
        nomeFantasia,
        naturezaJuridica,
        situacaoCadastral,
    },
    simplesNacional: {
        nomeEmpresarial,
        situacaoSimplesNacional,
        situacaoSIMEI,
        simplesNacionalPeriodosAnteriores,
        SIMEIPeriodosAnteriores,
        dataConsulta,
    },
    telefones: telefones.map((x) => ({
        numero: x.TelefoneComDDD,
    })),
    enderecos: enderecos.map((x) => ({
        logradouro: x.Logradouro,
        numero: x.Numero,
        bairro: x.Bairro,
        cidade: x.Cidade,
        uf: x.UF,
        cep: x.CEP,
    })),
    emails: emails.map((x) => ({
        endereco: x.EnderecoEmail,
    })),
    socios: socios.map((x) => ({
        documento: x.Documento,
        nome: x.Nome,
        percentualParticipacao: x.PercentualParticipacao,
        dataEntrada: x.DataEntrada,
    })),
};

Visual Studio 代码终端说:

Cannot destructure property SituacaoSimplesNacional of undefined or null.

因为 属性 SimplesNacionalnull.

const {
  Retorno: {
    ReceitaPJ: {
      NumeroInscricao: numeroInscricao,
      Matriz: matriz,
      DataAbertura: dataAbertura,
      NomeEmpresarial: nomeEmpresarial,
      NomeFantasia: nomeFantasia,
      NaturezaJuridica: naturezaJuridica,
      SituacaoCadastral: situacaoCadastral,
    },
    SimplesNacional,
    CadastroPJ: {
      Telefones: telefones,
      Enderecos: enderecos,
      Emails: emails,
      Socios: socios,
    },
  },
} = response

if (SimplesNacional) {
  var {
    SituacaoSimplesNacional: situacaoSimplesNacional,
    SituacaoSIMEI: situacaoSIMEI,
    SimplesNacionalPeriodosAnteriores: simplesNacionalPeriodosAnteriores,
    SIMEIPeriodosAnteriores,
    DataConsulta: dataConsulta,
  } = SimplesNacional
}

分两步搞定

编辑: 如果你想使用 const...

const {
   SituacaoSimplesNacional: situacaoSimplesNacional,
   SituacaoSIMEI: situacaoSIMEI,
   SimplesNacionalPeriodosAnteriores: simplesNacionalPeriodosAnteriores,
   SIMEIPeriodosAnteriores,
   DataConsulta: dataConsulta,
 } = (SimplesNacional || {})

但无论如何,深入对象稍后会抛出错误...