我有.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设置中错了还是丢失了什么?
答案 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