如何解构有时接收为 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
.
因为 属性 SimplesNacional
是 null
.
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 || {})
但无论如何,深入对象稍后会抛出错误...
我在下面有这个对象,我通过 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
ofundefined
ornull
.
因为 属性 SimplesNacional
是 null
.
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 || {})
但无论如何,深入对象稍后会抛出错误...