diff --git a/src/compile/Component.ts b/src/compile/Component.ts index 243e4bb90f..a8145e6b2c 100644 --- a/src/compile/Component.ts +++ b/src/compile/Component.ts @@ -1,4 +1,5 @@ import MagicString, { Bundle } from 'magic-string'; +// @ts-ignore import { walk, childKeys } from 'estree-walker'; import { getLocator } from 'locate-character'; import Stats from '../Stats'; @@ -21,6 +22,7 @@ import { remove_indentation, add_indentation } from '../utils/indentation'; import get_object from './utils/get_object'; import unwrap_parens from './utils/unwrap_parens'; import Slot from './nodes/Slot'; +import { Node as ESTreeNode } from 'estree'; type ComponentOptions = { namespace?: string; @@ -758,7 +760,7 @@ export default class Component { }); } - if (is_reference(node, parent)) { + if (is_reference(node as ESTreeNode, parent as ESTreeNode)) { const object = get_object(node); const { name } = object; @@ -1022,7 +1024,7 @@ export default class Component { scope = map.get(node); } - if (is_reference(node, parent)) { + if (is_reference(node as ESTreeNode, parent as ESTreeNode)) { const { name } = flatten_reference(node); const owner = scope.find_owner(name); @@ -1113,7 +1115,7 @@ export default class Component { } else if (node.type === 'UpdateExpression') { const identifier = get_object(node.argument); assignees.add(identifier.name); - } else if (is_reference(node, parent)) { + } else if (is_reference(node as ESTreeNode, parent as ESTreeNode)) { const identifier = get_object(node); if (!assignee_nodes.has(identifier)) { const { name } = identifier; diff --git a/src/compile/utils/scope.ts b/src/compile/utils/scope.ts index a3e341be49..1303d205a0 100644 --- a/src/compile/utils/scope.ts +++ b/src/compile/utils/scope.ts @@ -1,6 +1,7 @@ import { walk } from 'estree-walker'; import is_reference from 'is-reference'; import { Node } from '../../interfaces'; +import { Node as ESTreeNode } from 'estree'; export function create_scopes(expression: Node) { const map = new WeakMap(); @@ -38,7 +39,7 @@ export function create_scopes(expression: Node) { map.set(node, scope); } else if (/(Class|Variable)Declaration/.test(node.type)) { scope.add_declaration(node); - } else if (node.type === 'Identifier' && is_reference(node, parent)) { + } else if (node.type === 'Identifier' && is_reference(node as ESTreeNode, parent as ESTreeNode)) { if (!scope.has(node.name) && !globals.has(node.name)) { globals.set(node.name, node); }