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

149
Visualizações
¿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 à 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