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

214
Visualizações
¿Cómo acceder a Textencoder como global en lugar de importarlo desde el paquete de utilidad?

Estoy usando Node v18.0.0 con TypeScript y parece que la clase TextEncoder es global .

Desafortunadamente, este código const textEncoder = new TextEncoder(); no es válido porque no sabe acerca de la clase. Tendré que importar el paquete util para que funcione, de lo contrario aparece el error

No se puede encontrar el nombre 'TextEncoder'. ¿Quiso decir 'textEncoder'?ts(2552)

Estoy usando los paquetes "@types/node": "17.0.23" y "typescript": "4.6.3" . El archivo tsconfig.json

 { "compilerOptions": { "baseUrl": ".", "declaration": true, "esModuleInterop": true, "lib": [ "esnext" ], "module": "commonjs", "outDir": "build", "resolveJsonModule": true, "strict": true, "target": "es2019" }, "include": [ "./**/*.ts" ], "exclude": [ "./build" ] }

¿Alguien sabe cómo arreglar esto? ¿Tengo que usar algunos paquetes adicionales o modificar mi configuración de TS?

Por favor, hágamelo saber si necesita más información!

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

0

Esto parece una inconsistencia (al menos) entre la documentación de Node.js (y el tiempo de ejecución) y el paquete @types/node en DefinitelyTyped. Este problema es muy similar aeste con URL , que desde entonces se solucionó agregando una declaración global en url.d.ts . Puede valer la pena abrir un problema (y hacer una PR).

Como dices, TextEncoder definitivamente es global (tanto la documentación como una prueba rápida nos lo dicen), pero @types/node/globals.d.ts no lo tiene. @types/node/utils.d.ts lo tiene (como indicó), e incluso tiene el comentario "La clase TextEncoder también está disponible en el objeto global". pero... no lo es (a diferencia de URL , que [ahora] lo es).

Si el código que está escribiendo es específico de Node.js, solo haría la importación y no me preocuparía.

Pero si se supone que el código que está escribiendo se dirige tanto a Node.js como a los navegadores, obviamente esa no es una opción. Una solución alternativa mencionada en el hilo del problema de URL es agregar "dom" a su configuración de configuración de lib , pero eso significa que todo el DOM se agrega a su espacio de nombres global.

Alternativamente, hasta que/a menos que se actualicen los tipos, puede declarar el global usted mismo. En la raíz de tu proyecto:

whatever.d.ts :

 import { TextEncoder as _TextEncoder } from "node:util"; declare global { var TextEncoder: typeof _TextEncoder; }

No obtiene información emergente útil cuando hace new TextEncoder( , pero funciona, y obtiene información útil para sus métodos, etc.

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