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

154
Views
mecanografiado inferir el tipo de utilería del tipo de otra propiedad
interface featureType<Props=any, State=any> { initialState: State; props: Props; processState: (props: Props, state: State) => any; } const feature1Comp: featureType = { initialState: { lastName: '' }, props: { firstName: 'eliav' }, processState: (props, state) => { props; // type should be {firstName: string} but instead is any }, };

¿Por qué no se infiere el tipo de props ? ¿Qué me estoy perdiendo?

patio de juegos rápido aquí (la URL se está cortando, así que copie y pegue el código)

(Publico esta pregunta solo porque lleva demasiado tiempo encontrar una solución para ese problema y este es un uso bastante común para mecanografiado)

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

0

  1. Ponga en mayúsculas sus tipos e interfaces (FeatureType) - eso es una convención
  2. Si usa genéricos, debe proporcionarlos a su definición de tipo:

const feature1Comp = FeatureType<{ firstName: string}, any>

Trate a los genéricos como una especie de 'funciones de tipo'. Si no proporciona los tipos concretos, se usarán los valores predeterminados, por lo que TS asume que Props y State se escriben como cualquiera.

Actualización: esto es lo que funcionará con la inferencia

 interface Component<P,S> { initialState: S, props: P, processState: (props: P, state: S) => any } function createComponent<P, S>(arg: Component<P, S>): Component<P, S> { return arg; } const x = createComponent({ initialState: 'someValue', props: { firstName: 'Elias' }, processState: (p, s) => { console.log(p.firstName) // Works console.log(p.lastName) // 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!