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

150
Vistas
¿Pueden las funciones de Constructor heredar una interfaz en Typescript?

Tengo una función de constructor JS escrita en Typescript y accedo a esta función de constructor desde otro código como este

 const ls = new LocalStorage<ICountryHolidayData>() let strdVal = ls.getItem(constants.localStorageKey).storedValue

Aunque el código funciona bien, no obtengo ninguna inteligencia... ni para ls.getItem ni para la propiedad storedValue.

Creo que es porque las funciones del constructor no pueden heredar la interfaz como lo hacen las clases en mecanografiado. De lo contrario, ¿alguien puede ayudarme a entender cómo hacer esto, de modo que pueda obtener intellisense para ambos valores? PD: sé que la forma más fácil es usar clases, pero tengo curiosidad sobre cómo hacerlo a través de funciones de constructor


 export interface ILocalStorgaeReturnValue<Type>{ storedValue: Type, date: Date } export interface ILocalStorage<Type extends {}>{ setItem(key:string,value:Type):void; getItem(key:string):ILocalStorgaeReturnValue<Type>; removeItem(key:string ):void; //clear(); } export function LocalStorage<Type>(){ if( !window.localStorage) throw new Error(`Browser does not support local storage`) this.setItem = (key:string, val:Type ) =>{ if(!key || !val ) throw new Error(`key or value can not be null `) const completeObj = { storedValue: { ...val }, date:new Date() } window.localStorage.setItem(key ,JSON.stringify(completeObj)) }, this.getItem = (key:string):ILocalStorgaeReturnValue<Type> =>{ if(!key ) throw new Error(`[key can not be null `) const val= JSON.parse(window.localStorage.getItem(key)) if(!val || Object.keys(val).length<2) return null else return <ILocalStorgaeReturnValue<Type>> { ...val } }, this.removeItem = (key:string) =>{ if(!key ) throw new Error(`Key is empty`) window.localStorage.removeItem(key) } }
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