Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

249
Vistas
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 la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda