npm install --save-dev eslint typescript @typescript-eslint/parser @typescript-eslint/eslint-plugin
//.eslintrc.js
module.exports = {
root: true,
parser: '@typescript-eslint/parser',
plugins: [
'@typescript-eslint',
],
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
],
};
install eslint-config-airbnb
npx install-peerdeps --dev eslint-config-airbnb
install eslint-config-airbnb-typescript
you need install eslint-config-airbnb
first
npm install -D eslint-config-airbnb-typescript
{
extends: ['airbnb', 'airbnb-typescript'],
+ parserOptions: {
+ project: './tsconfig.json'
+ }
}
install jest & eslint-plugin-jest
npm install -D jest eslint-plugin-jest
module.exports = {
env: {
browser: true,
commonjs: true,
es6: true,
'jest/globals': true,
},
settings: {
jest: {
version: require('jest/package.json').version,
},
},
// extends: [
// 'eslint:recommended',
// 'airbnb-base',
// ],
// // globals: {
// // Atomics: 'readonly',
// // SharedArrayBuffer: 'readonly',
// // },
// parserOptions: {
// ecmaVersion: 2020,
// },
rules: {
// 'import/extensions': [
// 'error',
// 'ignorePackages',
// {
// js: 'never',
// jsx: 'never',
// ts: 'never',
// tsx: 'never',
// },
// ],
},
plugins: [
'jest',
],
overrides: [{
files: ['*.ts', '*.tsx'],
parser: '@typescript-eslint/parser',
parserOptions: {
project: './tsconfig.json'
},
plugins: [
'@typescript-eslint',
'jest',
],
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:@typescript-eslint/recommended-requiring-type-checking',
'airbnb',
'airbnb-typescript',
'plugin:jest/recommended',
],
rules: {
// '@typescript-eslint/ban-ts-comment': 'off',
// '@typescript-eslint/no-explicit-any': 'off',
// 'jest/no-disabled-tests': 'warn',
// 'jest/no-focused-tests': 'error',
// 'jest/no-identical-title': 'error',
// 'jest/prefer-to-have-length': 'warn',
// 'jest/valid-expect': 'error',
// 'import/no-extraneous-dependencies': 'off',
// 'no-trailing-spaces': [
// 'error',
// {
// skipBlankLines: true,
// },
// ],
// 'no-unused-vars': [
// 'error',
// {
// args: 'none',
// },
// ],
// 'max-classes-per-file': ['error', 2],
// // "max-lines-per-function": ["error", 50],
// 'lines-between-class-members': [
// 'error',
// 'always',
// { exceptAfterSingleLine: true },
// ],
// 'import/prefer-default-export': 'off',
},
}],
settings: {
'import/resolver': {
typescript: {}, // this loads <rootdir>/tsconfig.json to eslint
},
},
};
{
"name": "awesome-computer-science",
"version": "1.0.0",
"description": "This repository is for Computer Science.",
"main": ".eslintrc.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/polyglotm/awesome-computer-science.git"
},
"author": "",
"license": "ISC",
"bugs": {
"url": "https://github.com/polyglotm/awesome-computer-science/issues"
},
"homepage": "https://github.com/polyglotm/awesome-computer-science#readme",
"devDependencies": {
"@typescript-eslint/eslint-plugin": "^5.10.0",
"@typescript-eslint/parser": "^5.10.0",
"eslint": "^8.8.0",
"eslint-config-airbnb": "^19.0.4",
"eslint-config-airbnb-typescript": "^16.1.0",
"eslint-plugin-import": "^2.25.4",
"eslint-plugin-jest": "^26.1.0",
"eslint-plugin-jsx-a11y": "^6.5.1",
"eslint-plugin-react": "^7.28.0",
"eslint-plugin-react-hooks": "^4.3.0",
"jest": "^27.5.1",
"ts-node": "^10.4.0",
"typescript": "^4.5.5"
}
}