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

259
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
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