Почему tslint: рекомендуется не разрешать модули?

Мы используем typescript v2.3.2 и TSLint v4.5.1 с VS Code для создания SPA. Кодовая база растет, и нам нужно как-то ее модульно разделить.

Я попытался выполнить модульность с помощью модулей машинописного текста, но обнаружил следующую ошибку lint при переносе приложения.

[tslint] 'namespace' and 'module' are disallowed (no-namespace)

Я использую эту конфигурацию для линтера:

{
  "extends": "tslint:recommended",
  "rules": {
    "no-var-requires": false,
    "no-console": ["error", false],
    "max-line-length": [false]
  }
}

Файл рекомендуемых правил в строке 89 показывает это правило:

"no-namespace": true,

Интересно, есть ли что-то не так, и как лучше всего разделить SPA на модули, следуя передовым методам, которые не устаревают в ближайшее время.

Примеры кода приветствуются. Большое спасибо.


person Diego Gago    schedule 26.05.2017    source источник
comment
Используйте стандартные модули ES6. typescriptlang.org/docs/handbook/modules.html   -  person JB Nizet    schedule 26.05.2017
comment
Если вы хотите использовать пространства имен, которые могут подойти для большой кодовой базы, отключите правило.   -  person    schedule 29.05.2017


Ответы (1)


[tslint] «пространство имен» и «модуль» запрещены (без пространства имен)

Потому что это не стандартный синтаксис JavaScript.

Более

person basarat    schedule 29.05.2017
comment
github. com/typescript-eslint/typescript-eslint/blob/master/ утверждает, что [module/namespace] are considered outdated ways to organize TypeScript code. ES2015 module syntax is now preferred (import/export), но не объясняет, почему - person Renaud; 25.02.2020