ESLint正确整理我的Typescript文件

时间:2019-01-01 10:47:48

标签: node.js typescript eslint

我有.js文件(src / client / ...)和.ts文件(src / server / ..)

我安装了以下软件包:

package.json

const books_url = "http://127.0.0.1:3000/books";
document.getElementById('searchBtn').addEventListener('click', bookSearch, false);

function bookSearch() {
    var search = document.getElementById('searchBar').value;
    document.getElementById('booksFound').innerHTML = "";
    console.log('Looking for ' + search);
    console.log('Search button works');
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function () { // this is what happens when an answer is returned 
        if(xhttp.readyState === 4 && xhttp.status === 200) { // a valid answer
           document.getElementById("divShowBooks").innerHTML = xhttp.responseText;
         }
    };
    xhttp.open("GET", books_url, true);
    xhttp.send("term=" + search ); // sending the term variable to the search page
}

然后我在package.json中定义了以下aslant配置

  "eslint": "^5.11.1",
  "eslint-config-airbnb-base": "^13.1.0",
  "eslint-config-typescript": "^1.1.0",
  "eslint-plugin-import": "^2.14.0",
  "eslint-plugin-typescript": "^0.14.0",
  ....
  "typescript": "^3.0.3",
  "typescript-eslint-parser": "^21.0.2",

然后我设置了皮棉脚本:

  "eslintConfig": {
    "extends": ["airbnb-base", "eslint:recommended", "typescript"],
    "env": { "es6": true, "browser": true },
    "parserOptions": { "parser": "typescript-eslint-parser" },
    "plugins": ["typescript"],
    "rules": {
      "no-unused-vars": ["error", { "vars": "all", "args": "after-used", "ignoreRestSiblings": false }],
      "no-var": ["off"],
      "one-var": ["off"],
      "prefer-destructuring": ["error", { "object": false, "array": false } ],
      "no-underscore-dangle": ["error", { "allow": ["__blogPostData"] }]
    }
  }

它正确列出了我所有的.js文件,但我的.ts文件中没有看到任何警告/错误(我怀疑它们写得很好...)

我在打字稿的eslint设置中错了还是丢失了什么?

2 个答案:

答案 0 :(得分:1)

parser是根级别的配置项目,而不是parserOptions的字段:

 "eslintConfig": {
    "parser": "typescript-eslint-parser"
    "parserOptions": { ...options },
    "plugins": ["typescript"]
  }

此外,不赞成使用您使用的解析器和插件。较新/维护的项目均可在https://github.com/typescript-eslint/typescript-eslint上获得。 (配置是相同的,只是名称已更新)。这是一个很好的逐步说明,介绍如何进行设置-https://dev.to/robertcoopercode/using-eslint-and-prettier-in-a-typescript-project-53jb

请注意,您可以使用单独的package.json来代替在.eslintrc.{js,yaml}中定义eslint配置。根目录中的一个将为JavaScript设置标准规则,而./src/server中的另一个将仅为相关目录设置TypeScript解析器和插件(但仍会选择所有标准根规则)。

答案 1 :(得分:-2)

您应该将tslint用于TypeScript,而不是eslint:

npm i tslint --save

之后,在您的项目根目录中创建一个tslint.json(或使用喜欢的规则从网络中选择一个)。我在Google上找到的只是一个链接:ts lint setup