Saltar al contenido

‘No se puede volver a declarar la variable de ámbito de bloque’ en archivos no relacionados

El tutorial o código que hallarás en este post es la resolución más fácil y efectiva que hallamos a tu duda o problema.

Solución:

TL;DR Solo escribe export en el ámbito más externo de sus archivos.


En algún momento, debe haber una desambiguación semántica sobre si un archivo debe tratarse como un módulo (y tienen su propio alcance) o un guion (y compartir el alcance global con otros scripts).

En el navegador, esto es fácil: debería poder usar un

Pero, ¿qué pasa con cualquier otro lugar que utilice JavaScript? Lamentablemente, en este momento no existe una forma estándar de hacer esa distinción.

La forma en que TypeScript decidió abordar el problema fue simplemente afirmar que un módulo es cualquier archivo que contenga una importación o exportación.

Entonces, si su archivo no tiene ningún tipo de nivel superior import o export declaraciones, ocasionalmente verá problemas con las declaraciones globales que interfieren entre sí.

Para evitar esto, puede simplemente tener un export declaración que no exporta nada. En otras palabras, solo escribe

export ;

en algún lugar en el nivel superior de su archivo.

GlobalVar y las funciones están expuestas al espacio de nombres global, y TypeScript le advierte que la variable y el nombre del método se vuelven a declarar. Debido a que las dos funciones se declaran en el espacio de nombres global, solo necesita declararlas una vez.

Si desea hacer esto, use espacios de nombres.

namespace foo     
    declare const GlobalVar: any;
    function baz() 


namespace bar 
    declare const GlobalVar: any;
    function baz() 

Puede llamar a las funciones de la misma manera que las llama en C#, utilizando el nombre del espacio de nombres: bar.baz o foo.baz.

Recuerda recomendar esta división si lograste el éxito.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *