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

117
Views
cómo hacer un tipo iterable en el script de tipo que tiene un par de valores clave

Estoy usando un script de tipo y quiero crear un tipo que represente un objeto como este. Las claves generadas se generan dinámicamente. ¿Cómo hago eso?

 { dog:true, cat:true, x:true }

actualmente solo estoy usando cualquiera, pero me gustaría un tipo adecuado

 const matches: any= {}

me sale este error cuando trato de usar

 {[key: string]: boolean}
 Type 'string[] | { [key: string]: boolean; }' must have a '[Symbol.iterator]()' method that returns an iterato

código que causa este error

 const docgetter=()=> const matches: { [key: string]: boolean } = {} const documentFieldKeys = Array.isArray(documentNames) ? documentNames : Object.keys(documentNames) return [matches, documentFieldKeys] } const [matches,kycKeys]=docgetter() for(key of kycKeys)
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Usando [key : string]

 type dict = { [key : string] : boolean } const o: dict = { cat: true, dog: true, x: false }

Editar:

no especificó un tipo para la salida de docgetter , por lo que TypeScript lo infirió incorrectamente como

 const kycKeys: { [key: string]: boolean; } | string[]

Puedes arreglar esto haciendo

 for(const key of kycKeys as string[]) { console.log(key) }

para que TypeScript sepa que está iterando una matriz y no un objeto (el objeto generaría un error)

O podría dejar que TypeScript sepa cuál es el resultado

versión fija de su código:

 const documentNames = { "a": true, "b": true, "c": true } type output = [ { [key: string]: boolean }, string[] ] const docgetter=() : output => { const matches: { [key: string]: boolean } = {} const documentFieldKeys : string[] = Array.isArray(documentNames) ? documentNames : Object.keys(documentNames) return [matches, documentFieldKeys] } const [matches,kycKeys]=docgetter() for(const key of kycKeys) { console.log(key) }
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!