【问题标题】:tslint - Import sources within a group must be alphabetizedtslint - 组内的导入源必须按字母顺序排列
【发布时间】:2019-03-12 08:50:54
【问题描述】:

我正在使用带有custom-react-scripts-tscreate-react-app 设置。

这是我的组件:

import * as React from "react";
import "./App.css"; // reset.css

import ErrorsContainer from "./components/Error/Container";
import Header from "./components/Header";
import { initStores } from "./stores";
import { Provider } from "mobx-react";
import typography from "./utils/typography";

// font styles
typography.injectStyles();

class App extends React.Component {
  public onErrorDismiss = () => {
    return null;
  };

  public render() {
    return (
      <Provider {...initStores()}>
        <div className="App">
          <Header foo="string" />
          <ErrorsContainer />
        </div>
      </Provider>
    );
  }
}

export default App;

这是我得到的编译失败错误:

(7,1):组内的导入源必须按字母顺序排列。

这是我正在使用的tslint.json 文件:

{
  "extends": ["tslint:recommended", "tslint-react", "tslint-config-prettier"],
  "linterOptions": {
    "exclude": [
      "config/**/*.js",
      "node_modules/**/*.ts",
      "coverage/lcov-report/*.js"
    ]
  },
  "rules": {
    "interface-name": [true, "never-prefix"]
  }
}

据我所知,导入的顺序还可以。为什么编译失败?

【问题讨论】:

    标签: typescript tslint


    【解决方案1】:

    查看https://stackoverflow.com/a/41841149/7977208以获得更完整的答案

    您可以尝试通过将其添加到您的 tslint 规则对象来覆盖该规则。

    "ordered-imports": [true, {
       "import-sources-order": "any",
       "named-imports-order": "case-insensitive"
    }]
    

    或者,将导入移到第 7 行

    import { Provider } from "mobx-react";
    

    到导入组的底部,这应该符合规则

    import ErrorsContainer from "./components/Error/Container";
    import Header from "./components/Header";
    import { initStores } from "./stores";
    import typography from "./utils/typography";
    import { Provider } from "mobx-react";
    

    按字母顺序,在这种情况下,'.'出现在“m”之前。

    根据您的编辑器,可能有一个扩展可用于自动为您的导入语句排序。

    【讨论】:

    • 我以为我应该按字母顺序排列模块名称,而不是导入路径...谢谢
    • @MihaŠušteršič 这个答案现在解决了吗?我看到这个问题被重置为未回答。
    • 由于某种原因,您答案中的导入不满足裁决。我还尝试了两个具有不同设置的 vscode 扩展,但都没有奏效。最终禁用了规则,可能是一个奇怪的边缘情况,但仍然不能接受没有有效解决方案的答案......
    • @ehavener 谢谢,正如你所说,我找到了 VScode 的打字稿扩展
    猜你喜欢
    • 2018-11-25
    • 1970-01-01
    • 2019-05-10
    • 2018-12-08
    • 2019-08-10
    • 2019-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多