Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

206
Views
Angular, pasa el tipo genérico a otra función. ¿Cómo escribir param?

tengo funcion como:

 getSomething<T>(value: T): any{ const temp = this.doSomething<T>(value); ... } doSomething<T>(value: T): any { return value.replace(/\s/g, ''); }

Inicialmente, el valor pasado tiene un tipo específico de tipo T, sé muy bien que en la función final será una cadena. Sin embargo, al hacerlo de esta manera, no puedo usar la función de reemplazo. Ayuda.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Debe decir que el valor tendría métodos de cadena. Como esto:

 getSomething<T extends string>(value: T): any{ const temp = this.doSomething<T>(value); ... } doSomething<T extends string>(value: T): any { return value.replace(/\s/g, ''); }
about 4 years ago · Juan Pablo Isaza Report

0

Piensa en tu problema de la siguiente manera:

  1. ¿Cómo puedo estar seguro de que el tipo provisto tiene el método "reemplazar ()"?
  2. ¿Qué pasaría si proporciono un tipo diferente, por ejemplo, número o nulo?

De alguna manera, debe decirle a Typescript que espera obtener un argumento que tenga el método "reemplazar ()". Puede hacerlo creando una interfaz adicional y mencionando que el tipo genérico amplía esa interfaz:

 interface Replacable { replace: (regexp: RegExp, str: string) => string } function getSomething<T extends Replacable>(value: T): any{ const temp = doSomething<T>(value); console.log(temp); } function doSomething<T extends Replacable>(value: T): any { return value.replace(/\s/g, ''); }

Lea más sobre restricciones genéricas aquí: https://www.typescriptlang.org/docs/handbook/2/generics.html#generic-constraints

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!