Closed
Description
The rule no-unsafe-return
exits with an error on array types with TS versions < 3.7
Apparently the rule uses the method getTypeArguments
which was only added to the TS api in version 3.7: https://github.com/microsoft/TypeScript-wiki/blob/master/API-Breaking-Changes.md
Repro
module.exports = {
parser: '@typescript-eslint/parser',
plugins: ['@typescript-eslint'],
parserOptions: {
project: './tsconfig.json',
},
rules: {
'@typescript-eslint/no-unsafe-return': 'error',
},
};
function foo() {
return [];
}
I created a minimal repo here: https://github.com/tao-cumplido/ts-eslint-error
If you bump the TS version to 3.7 it works as expected.
Expected Result
no error
Actual Result
TypeError: checker.getTypeArguments is not a function
Occurred while linting C:\Users\taocu\Desktop\Projekte\ts-eslint-error\test.ts:2
at Object.isAnyOrAnyArrayTypeDiscriminated (C:\Users\taocu\Desktop\Projekte\ts-eslint-error\node_modules\@typescript-eslint\eslint-plugin\dist\util\types.js:242:31)
at checkReturn (C:\Users\taocu\Desktop\Projekte\ts-eslint-error\node_modules\@typescript-eslint\eslint-plugin\dist\rules\no-unsafe-return.js:49:34)
at ReturnStatement (C:\Users\taocu\Desktop\Projekte\ts-eslint-error\node_modules\@typescript-eslint\eslint-plugin\dist\rules\no-unsafe-return.js:105:17)
at C:\Users\taocu\Desktop\Projekte\ts-eslint-error\node_modules\eslint\lib\linter\safe-emitter.js:45:58
at Array.forEach (<anonymous>)
at Object.emit (C:\Users\taocu\Desktop\Projekte\ts-eslint-error\node_modules\eslint\lib\linter\safe-emitter.js:45:38)
at NodeEventGenerator.applySelector (C:\Users\taocu\Desktop\Projekte\ts-eslint-error\node_modules\eslint\lib\linter\node-event-generator.js:254:26)
at NodeEventGenerator.applySelectors (C:\Users\taocu\Desktop\Projekte\ts-eslint-error\node_modules\eslint\lib\linter\node-event-generator.js:283:22)
at NodeEventGenerator.enterNode (C:\Users\taocu\Desktop\Projekte\ts-eslint-error\node_modules\eslint\lib\linter\node-event-generator.js:297:14)
at CodePathAnalyzer.enterNode (C:\Users\taocu\Desktop\Projekte\ts-eslint-error\node_modules\eslint\lib\linter\code-path-analysis\code-path-analyzer.js:634:23)
error Command failed with exit code 2.
Additional Info
Versions
package | version |
---|---|
@typescript-eslint/eslint-plugin |
2.25.0 |
@typescript-eslint/parser |
2.25.0 |
TypeScript |
3.6.x |
ESLint |
6.8.0 |
node |
13.10.1 |
npm |
6.13.7 |