TSLint 对非字母化的导入源不满意

TSLint unhappy with non-alphabetized import sources

我有几个 TSLint 不满意的 TypeScript 导入源,因为它们显然没有按字母顺序排列。

import { DialogNoConfigurationFile } from './view/dialogs/dialog-no-configuration-file';
import { DisplayMain } from './view/display/display-main';
import { Global } from './business/global';
import { remote } from 'electron';
import { RequestResponse } from './data/model/request-response';
import { UserRequestResponse } from './data/model/user-request-response';

来自 TSLint 的错误消息:

ERROR: /home/myuser/Documents/myproject/administration2/src/app.tsx:11:1 - Import sources within a group must be alphabetized.
ERROR: /home/myuser/Documents/myproject/administration2/src/app.tsx:12:1 - Import sources within a group must be alphabetized.

我的package.json脚本命令:

"lint": "tslint --project tsconfig.json --force"

尽管 TSLint 对 Globalremote 不满意,但按字母顺序排列一切正常。我相信 TSLint 一定对大写或类似的东西不满意。有没有办法检查 TSLint 是如何按字母顺序排列的?

您可以 运行 使用 --fix tslint 对导入进行排序:

npx tslint --fix --project tsconfig.json src/app.tsx

如果您使用 VS Code,则有一个 tslint 扩展允许您应用单独的修复。

假设您使用 ordered-imports 规则的默认设置,您的导入在按如下方式排序时应该没问题:(绝对优先于相对)

import { remote } from 'electron';
import { Global } from './business/global';
import { RequestResponse } from './data/model/request-response';
import { UserRequestResponse } from './data/model/user-request-response';
import { DialogNoConfigurationFile } from './view/dialogs/dialog-no-configuration-file';
import { DisplayMain } from './view/display/display-main';

如需更多导入,您可以在 https://palantir.github.io/tslint/rules/ordered-imports/:

查看规则文档

If no "groups" options is set, a default grouping is used of third-party, parent directories and the current directory. ("bar", "../baz", "./foo".)