Vscode error when add lang="ts" to .vue file: "this expression is not callable"

I am converting a .vue file to typescript. Getting a vscode error “this expression is not callable”. The code executes correctly. What change should I make to satisfy vscode?

here is the code:

<template>
  <input type="text" class="input" :value="value" v-on="listeners" >
</template>

<script lang="ts">
export default {
  computed: {
    listeners ( ) {
      return {
        // Pass all component listeners directly to input
        ...this.$listeners,
        // Override input listener to work with v-model
        input: event => this.$emit('input', event.target.value)
      }
    }
  }
}
</script>

the vscode error is on the this.$emit statement:

(() => any) | ComputedOptions<any>
This expression is not callable.
  Not all constituents of type '(() => any) | ComputedOptions<any>' are callable.
    Type 'ComputedOptions<any>' has no call signatures.Vetur(2349)

a partial answer to my own question …

convert the code to typed typescript:

<template>
  <input type="text" class="input" :value="value" v-on="listeners" >
</template>

<script lang="ts">
import { Component, Prop, Vue } from 'vue-property-decorator';
export default class BaseInputText extends Vue {
  @Prop( {type:String, default:''} ) value! : string
  get listeners( )
  {
    const input = (event : Event ) =>
    {
      if ( event && event.target )
      {
        const vlu = (event.target as unknown as {value:string}).value ;
        this.$emit('input', vlu ) ;
      }
    }
    return {...this.$listeners, input} ;
  }
}
</script>

the problem that remains is casting the “value” property onto the event.target object. At least the code builds.