A sintaxe do módulo ES2015 é preferida aos módulos e espaços de nome TypeScript personalizados @ typescript-eslint / no-namespace

9

Estou recebendo o seguinte erro ao executar o npm start:

A sintaxe do módulo ES2015 é preferida aos módulos e espaços de nome TypeScript personalizados @ typescript-eslint / no-namespace

    namespace InternalThings {...}

Eu tentei pesquisar isso, mas é muito confuso.

Por que isso está acontecendo? Como corrigi-lo?

Tentei colocar algumas bandeiras no meu tsconfig.json, mas até agora não obtive sucesso;

Gabriel Marcondes
fonte

Respostas:

11

Este é um erro de fiapo, causado por esta regra de fiapo: https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-namespace.md

Se você acha útil a regra e deseja mantê-la, precisará modificar seu código para usar importe exportnão o espaço para nome. Consulte a documentação da regra para saber o que conta como uma correção.

Se você gosta da regra, mas deseja desabilitá-la, adicione o seguinte logo acima:

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

Se você não gosta da regra e deseja desativá-la completamente, edite seu arquivo .eslintrc para ter a seguinte linha:

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

O erro está vindo do eslint. Você deve ignorar a regra '@ typescript-eslint / no-namespace' na configuração ou reescrever seu código usando o ES6.

Os módulos TypeScript personalizados (módulo foo {}) e namespaces (namespace foo {}) são considerados maneiras desatualizadas de organizar o código TypeScript. A sintaxe do módulo ES2015 agora é preferida (importação / exportação)

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

Sudhakar RS
fonte