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

191
Visualizações
La propiedad "en" no existe en Array

Según MDN Web Docs Array.prototype#at , es un método válido. Pero por alguna razón, TypeScript se niega a compilar, afirmando que no existe.

 public at(index: number): V { index = Math.floor(index); const arr = [...this.values()]; return arr.at(index); }

Salida de consola de tsc: Mecanografiado Se queja más

No puedo usar la notación de corchetes, ya que el método está diseñado para poder manejar números negativos. Probé muchas cosas, incluida la configuración del target en el archivo tsconfig.json en ESNext, ES2021 y ES6, pero fue en vano. La opción lib tampoco ayuda.

json

 // tsconfig.json { "compilerOptions": { "target": "ES2021", "outDir": "./dist", "declaration": true, "declarationDir": "./typings", "lib": ["ES2021", "ESNext"] } }

¿Que puedo hacer? ¿Estoy haciendo algo mal?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Según MDN Web Docs Array.prototype#at , es un método válido.

MDN no puede decidir qué es parte de TypeScript y qué no. Los desarrolladores de TypeScript hacen eso.

Si MDN dice o no que algo es un "método válido" es relevante para Mozilla, y solo para Mozilla, pero no tiene relación con TypeScript.

Pero por alguna razón, TypeScript se niega a compilar, afirmando que no existe.

Esto se debe a que el método no existe en ninguna versión de ECMAScript compatible con TypeScript.

Probé muchas cosas, incluida la configuración del target en el archivo tsconfig.json en ESNext, ES2021 y ES6, pero fue en vano.

Esto se debe a que el método no existe ni en ECMAScript 6 ni en ECMAScript 2021 . Existe en ES2022 ( que es lo que es ESNext en este momento), pero solo se agregó hace ocho semanas y, por lo tanto, después de que se finalizó TypeScript 4.4 (y posiblemente también demasiado tarde para TypeScript 4.5).

La opción lib tampoco ayuda.

Nuevamente, eso se debe a que el método no existe en ninguna versión de biblioteca compatible con TypeScript en este momento.

Incluso en la rama principal actual, que se convertirá en TypeScript 4.6, lib/lib.esnext.d.ts solo corresponde a ECMAScript 2021 + las últimas extensiones de internacionalización .

¿Que puedo hacer? ¿Estoy haciendo algo mal?

Puede esperar hasta que el método realmente se convierta en parte de una versión lanzada de ECMAScript y/o TypeScript.

about 4 years ago · Juan Pablo Isaza Relatório

0

Array#at es de hecho un nuevo método disponible solo en ESNext o usando un polyfill. Si está utilizando este último, puede aumentar la interfaz de matriz global de esta manera:

 declare global { interface Array<T> { at(index: number): T; } }
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