Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

248
Visualizações
JS/TS Prototype Extension, no funciona en instancias específicas de prototipo

Tengo una extensión de prototipo de Date que uso en el proyecto Angular, definida como:

 if (!Date.prototype.hasOwnProperty('toLocalISOString')) { Date.prototype.toLocalISOString = function (): string | null { try { const date = new Date(this.valueOf()); const a = [ { f: date.getFullYear(), pad: 4 }, { f: date.getMonth() + 1, pad: 2 }, { f: date.getDate(), pad: 2 }, { f: date.getHours(), pad: 2 }, { f: date.getMinutes(), pad: 2 }, { f: date.getSeconds(), pad: 2 }, { f: date.getMilliseconds(), pad: 3 } ]; const s = a.map(d => dftoString().padStart(d.pad, '0')); return `${s[0]}-${s[1]}-${s[2]}T${s[3]}:${s[4]}:${s[5]}.${s[6]}`; //return `${s[0]}-${s[1]}-${s[2]}T${s[3]}:${s[4]}:${s[5]}.${s[6]}Z`; //if using Z as identifier the time is considered UTC } catch { return null; } }

La extensión se declara en mi archivo global.d.ts como:

 export { } declare global { interface Date { toLocalISOString(): string | null; } }

Con una llamada de función en un componente como se muestra a continuación:

 getAllSelect(startDate?: Date, endDate?: Date) { let params = new HttpParams(); if (startDate && endDate) { const d1 = new Date(startDate).toLocalISOString() ?? ''; const d2 = new Date(endDate).toLocalISOString() ?? ''; } 'do stuff }

si uso la función SIN el new Date() , es decir

 const d1 = startDate.toLocalISOString() ?? ''; const d2 = endDate.toLocalISOString() ?? '';

Recibo un mensaje de error que dice que toLocalISOString is not a function a pesar de que startDate y endDate son del tipo Date ? si incluyo el new Date() , funciona según lo previsto.

¿Alguien podría arrojar algo más de luz sobre las intrincadas diferencias entre los dos métodos y por qué la extensión del prototipo no se reconoce en la Date | null instancia Date | null ?

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda