Acornjs: свойство «вызываемый» не существует для типа «узел»

У меня есть следующий код:

      const script = `
  const john = "893cf9d5-ad70-423c-7ea8-4e0f92d9c79b"
  const a = A.solve(john, {input: 1}, 5)
`
const parsedConstructorCaller = acorn.parseExpressionAt(script, 71, { ecmaVersion: 2020 })
if(parsedConstructorCaller.type === 'CallExpression'){
  console.log(parsedConstructorCaller.callee)
}

Он отлично работает сам по себе, проблема, с которой я сталкиваюсь, заключается в том, что TypeScript не может найти свойство на acorn.Node. Этот класс встроен в библиотеку и определяется следующим образом:

      class Node {
  type: string
  start: number
  end: number
  loc?: SourceLocation
  sourceFile?: string
  range?: [number, number]
  constructor(parser: Parser, pos: number, loc?: SourceLocation)
}

Это консольный логparsedConstructorCaller, где вы можете видеть, что свойство callee может присутствовать наNodeсорт.

      Node {
  type: 'CallExpression',
  start: 71,
  end: 99,
  callee: Node {
    type: 'MemberExpression',
    start: 71,
    end: 78,
    object: Node { type: 'Identifier', start: 71, end: 72, name: 'A' },
    property: Node { type: 'Identifier', start: 73, end: 78, name: 'solve' },
    computed: false,
    optional: false
  },
  arguments: [
    Node { type: 'Identifier', start: 79, end: 83, name: 'john' },
    Node {
      type: 'ObjectExpression',
      start: 85,
      end: 95,
      properties: [Array]
    },
    Node { type: 'Literal', start: 97, end: 98, value: 5, raw: '5' }
  ],
  optional: false
}

Я не очень хорошо разбираюсь в ООП и предполагаю, что в расширении класса нет необходимости, потому что TypeScript, скорее всего, не позволит вам помещать данные в этот класс, если он не определен где-то в его структуре, а это означает, что это, скорее всего, неправильное использование с моей стороны, а не неполнота/баг библиотеки. Также это проблема не только сcalleeсвойство, это также происходит с другими свойствами fearguments.

Буду признателен за любые рекомендации по решению этой проблемы.

0 ответов

Другие вопросы по тегам