Сначала установите следующие модули в devDependencies:
- @ typescript-eslint / eslint-plugin
- @ машинопись-eslint / анализатор
Во-вторых, импортируйте модуль eslint в ваш spec-файл следующим образом:
const eslint = require('eslint');
В-третьих, создайте файл конфигурации .eslintrc.js для разбора файлов машинописного текста, например:
module.exports = {
env: {
node: true,
es6: true,
},
extends: ['plugin:@typescript-eslint/recommended'],
parser: '@typescript-eslint/parser',
parserOptions: {
sourceType: 'module',
typescript: true,
modules: true,
ecmaVersion: 6,
ecmaFeatures: {
experimentalObjectRestSpread: true,
},
},
plugins: ['@typescript-eslint'],
rules: {
indent: ['error', 4],
'linebreak-style': ['error', 'unix'],
quotes: ['error', 'single'],
semi: ['error', 'always'],
},
};
Затем импортируйте указанный выше файл конфигурации в ваш spec-файл и создайте функцию для получения линтера:
const configTsEslint = require('.eslintrc-typescript');
const tsLinter = () => {
const Linter = eslint.Linter;
return new Linter();
};
Наконец, проверьте ваш файл машинописи следующим образом:
it('should be valid typescript file', () => {
return ejs.renderFile('my-ejs-template.ts.ejs', {}).then(async (view) => {
const result = tsLinter().verifyAndFix(view);
expect(result.messages).toStrictEqual([]);
expect(result.fixed).toBe(true);
});
});
Вы можете добавить правила, которые поддерживаются [typescript-eslint] [1]