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

223
Views
Obteniendo "Error de referencia no detectado: x no está definido" ¿Cómo hacer referencia a los datos de un archivo js incluido en el mecanografiado de otro script?

Estoy haciendo una pequeña configuración de prueba para mecanografiado. Mi objetivo principal es agrupar todos los módulos .ts en un único archivo .js al que se puede hacer referencia en el lado del cliente en un index.html simple. Este es mi módulo de prueba:

 // index.ts import { Example } from './example' class x { example(): void { console.log(Example) } } let test = new x() test.example() // example.ts export const Example : string = 'Example Message'

Compilo todo en un archivo bundle.js usando Webpack 5 y ts-loader. Luego, creé un archivo .html para probar la clase creada. Allí, el test.example() dentro index.ts (y luego bundle.js ) se ejecutó correctamente, pero el segundo, dentro de <script/> informa Uncaught ReferenceError: x is not defined .

 <!-- index.html --> <html> <script src="../dist/js/bundle.js"></script> <script> // Uncaught ReferenceError: x is not defined let test = new x() test.example() </script> </html>

¿Cómo puedo hacer referencia a mi clase x desde el segundo <script/> ?

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

0

¿Cómo puedo hacer referencia a mi clase x desde el segundo <script/> ?

no puedes Al menos no sin modificar la estructura de su código fuente.

Un empaquetador pone todo su código ejecutable en el paquete. Eso incluye sus dependencias y el código de su aplicación. Y todo eso solo está realmente diseñado para funcionar desde ese paquete a través de las palabras clave de import y export .

El paquete gestiona esas importaciones/exportaciones de una manera que no contamina el alcance global. Pero sí requiere que te quedes dentro de ese paquete.

Sin embargo, parece que desea que su paquete haga que algunos valores estén disponibles en ese ámbito global. Y para hacer eso, debes ser explícito al respecto.

 class x { example(): void { console.log(Example) } } // Add `x` to the browser's global scope. window.x = x

Ahora, desde alguna otra etiqueta <script> , la new x() debería funcionar como espera.

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!