TSLint 对未按字母顺序排列的导入源不满意

Posted

技术标签:

【中文标题】TSLint 对未按字母顺序排列的导入源不满意【英文标题】:TSLint unhappy with non-alphabetized import sources 【发布时间】:2019-07-31 13:49:00 【问题描述】:

我有几个 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 是如何按字母顺序排列的?

【问题讨论】:

【参考方案1】:

您可以使用 --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/查看规则文档:

如果未设置“组”选项,则使用第三方、父目录和当前目录的默认分组。 (“酒吧”、“../baz”、“./foo”。)

【讨论】:

以上是关于TSLint 对未按字母顺序排列的导入源不满意的主要内容,如果未能解决你的问题,请参考以下文章

CONVERT_TEXT(转换为可排序格式)

excel中怎么将英文单词按字母顺序排序?

苹果6通讯录怎么按字母顺序排列

用单词和数字按字母顺序排列字符串

按字母顺序排列的名称和描述列表

输入的单词是不是按字母顺序排列?