Skip to content

Commit 62e4ca0

Browse files
authored
fix(typescript-estree): correct type of ArrayPattern.elements (typescript-eslint#1451)
1 parent 8dcdfb1 commit 62e4ca0

File tree

2 files changed

+7
-5
lines changed
  • packages

2 files changed

+7
-5
lines changed

packages/eslint-plugin/src/rules/indent-new-do-not-use/index.ts

+6-4
Original file line numberDiff line numberDiff line change
@@ -578,7 +578,7 @@ export default createRule<Options, MessageIds>({
578578
* @param offset The amount that the elements should be offset
579579
*/
580580
function addElementListIndent(
581-
elements: TSESTree.Node[],
581+
elements: (TSESTree.Node | null)[],
582582
startToken: TSESTree.Token,
583583
endToken: TSESTree.Token,
584584
offset: number | string,
@@ -606,7 +606,8 @@ export default createRule<Options, MessageIds>({
606606
offsets.setDesiredOffset(endToken, startToken, 0);
607607

608608
// If the preference is "first" but there is no first element (e.g. sparse arrays w/ empty first slot), fall back to 1 level.
609-
if (offset === 'first' && elements.length && !elements[0]) {
609+
const firstElement = elements[0];
610+
if (offset === 'first' && elements.length && !firstElement) {
610611
return;
611612
}
612613
elements.forEach((element, index) => {
@@ -628,7 +629,7 @@ export default createRule<Options, MessageIds>({
628629
tokenInfo.isFirstTokenOfLine(getFirstToken(element))
629630
) {
630631
offsets.matchOffsetOf(
631-
getFirstToken(elements[0]),
632+
getFirstToken(firstElement!),
632633
getFirstToken(element),
633634
);
634635
} else {
@@ -640,6 +641,7 @@ export default createRule<Options, MessageIds>({
640641

641642
if (
642643
previousElement &&
644+
previousElementLastToken &&
643645
previousElementLastToken.loc.end.line -
644646
countTrailingLinebreaks(previousElementLastToken.value) >
645647
startToken.loc.end.line
@@ -854,7 +856,7 @@ export default createRule<Options, MessageIds>({
854856
) {
855857
const openingBracket = sourceCode.getFirstToken(node)!;
856858
const closingBracket = sourceCode.getTokenAfter(
857-
node.elements[node.elements.length - 1] || openingBracket,
859+
node.elements[node.elements.length - 1] ?? openingBracket,
858860
isClosingBracketToken,
859861
)!;
860862

packages/typescript-estree/src/ts-estree/ts-estree.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -681,7 +681,7 @@ export interface ArrayExpression extends BaseNode {
681681

682682
export interface ArrayPattern extends BaseNode {
683683
type: AST_NODE_TYPES.ArrayPattern;
684-
elements: DestructuringPattern[];
684+
elements: (DestructuringPattern | null)[];
685685
typeAnnotation?: TSTypeAnnotation;
686686
optional?: boolean;
687687
decorators?: Decorator[];

0 commit comments

Comments
 (0)