Se prefiere la sintaxis del módulo ES2015 sobre los módulos y espacios de nombres personalizados de TypeScript @ typescript-eslint / no-namespace

9

Recibo el siguiente error al ejecutar npm start:

Se prefiere la sintaxis del módulo ES2015 sobre los módulos y espacios de nombres personalizados de TypeScript @ typescript-eslint / no-namespace

    namespace InternalThings {...}

Traté de investigar esto, pero es muy confuso.

¿Por qué está pasando esto? ¿Como arreglarlo?

Traté de poner algunas banderas en mi tsconfig.json pero hasta ahora no tuve éxito;

Gabriel Marcondes
fuente

Respuestas:

11

Este es un error de pelusa, causado por esta regla de pelusa: https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-namespace.md

Si encuentra útil la regla y desea mantenerla, deberá modificar su código para usarlo importy exportno el espacio de nombres. Consulte la documentación de la regla para lo que cuenta como una solución.

Si le gusta la regla, pero desea deshabilitarla para esta línea, agregue lo siguiente justo encima:

// eslint-disable-next-line @typescript-eslint/no-namespace

Si no le gusta la regla y desea deshabilitarla por completo, edite su archivo .eslintrc para que tenga la siguiente línea:

rules: {
  "@typescript-eslint/no-namespace": "off"
}
Nicholas Tower
fuente
2

El error proviene de eslint. Debe ignorar la regla '@ typescript-eslint / no-namespace' en la configuración o reescribir su código utilizando ES6.

Los módulos personalizados de TypeScript (module foo {}) y los espacios de nombres (namespace foo {}) se consideran formas obsoletas de organizar el código TypeScript. Ahora se prefiere la sintaxis del módulo ES2015 (importación / exportación)

Consulte https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-namespace.md

Sudhakar RS
fuente