Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
4 changes: 3 additions & 1 deletion packages/eslint-plugin/src/rules/no-non-null-assertion.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { AST_NODE_TYPES } from '@typescript-eslint/utils';

import {
createRule,
isAssignee,
isNonNullAssertionPunctuator,
nullThrows,
NullThrowsReasons,
Expand Down Expand Up @@ -53,7 +54,8 @@ export default createRule<[], MessageIds>({

if (
node.parent.type === AST_NODE_TYPES.MemberExpression &&
node.parent.object === node
node.parent.object === node &&
!isAssignee(node.parent)
) {
if (!node.parent.optional) {
if (node.parent.computed) {
Expand Down
34 changes: 34 additions & 0 deletions packages/eslint-plugin/tests/rules/no-non-null-assertion.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -387,5 +387,39 @@ x?.
},
],
},
{
code: `
document.querySelector('input')!.files = new FileList();
`,
errors: [
{
column: 1,
endColumn: 33,
line: 2,
messageId: 'noNonNull',
},
],
},
{
code: `
hoge.files = document.querySelector('input')!.files;
`,
errors: [
{
column: 14,
endColumn: 46,
line: 2,
messageId: 'noNonNull',
suggestions: [
{
messageId: 'suggestOptionalChain',
output: `
hoge.files = document.querySelector('input')?.files;
`,
},
],
},
],
},
],
});
Loading