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

244
Views
El tipo genérico en una matriz arroja "No se puede encontrar el nombre 'T'"

tengo este codigo:

 interface Process<T> { first: () => T[]; second: (d: T) => void; } const PROCESSES: Process<T>[] = [ { first: () => [{car: "car1"}], second: (car: {car: string}) => {}, }, { first: () => [{person: "person1"}], second: (person: {car: string}) => {}, // => How to make TS mark this as an error because is not a persona type? }, ];

Parque infantil TS

El problema es que TypeScript arroja este error: Cannot find name 'T'.

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

0

Utiliza el nombre genérico T cuando define la interfaz o el tipo. No puede usarlo para declarar tipos de variables. Debe crear un tipo/interfaz para Car y Person y usarlos en la declaración de PROCESSES en lugar de T .

 interface Process<T> { first: () => T[]; second: (d: T) => void; } type Car = { car: string }; type Person = { person: string }; const PROCESSES: (Process<Car> | Process<Person>)[] = [ { first: () => [{ car: 'car1' }], second: (car: Car) => {}, // => works }, { first: () => [{ person: 'person1' }], second: (person: Person) => {}, // => works }, { first: () => [{ person: 'person1' }], second: (person: Car) => {}, // => Error! ];
about 4 years ago · Juan Pablo Isaza Report

0

Si no desea especificar manualmente todos los tipos de elementos en la matriz de processes , puede usar una función de fábrica como esta:

 function createProcesses< T extends any[] >(process: [...{ [I in keyof T]: { first: () => T[I][], second: (d: T[I]) => void } } ]){ return process }

Patio de juegos

 const processes = createProcesses([ { first: () => [{ car: 'car1' }], second: (car: Car) => {}, // => works }, { first: () => [{ person: 'person1' }], second: (person: Person) => {}, // => works }, { first: () => [{ person: 'person1' }], second: (person: Car) => {}, // => Error! } ])
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!