title: How to make Typescript understand the type of custom v-model prop in Vue 2
body: <p>I'm using Vue 2 in a Nuxt app with <code>@nuxtjs/composition-api</code> and the following inside one of my components that has a custom <code>v-model</code>.</p>
  <pre><code>model: {
    prop: 'modelValue',
    event: 'change',
  },
  props: {
    id: {
      type: String,
      required: true,
    },
    label: {
      type: String,
      default: '',
    },
    value: {
      type: String,
      default: '',
    },
    modelValue: {
      type: [Boolean, Array],
      default: false,
    },
  },
  </code></pre>
  <p><strong>Template</strong></p>
  <pre><code>&lt;UiCheckbox id=&quot;checkbox&quot; v-model=&quot;checkboxValue&quot; label=&quot;abc&quot; /&gt;
  </code></pre>
  <p><strong>Script</strong></p>
  <pre><code>setup() {
    // Added any to silence the warning
    const checkboxValue = ref&lt;any&gt;(false);
  
    return { checkboxValue };
  },
  </code></pre>
  <p>When I access to my component from outside, Typescript binds the value of a prop called <code>value</code> to <code>v-model</code> and not my custom prop <code>modelValue</code>. The inferred type is then wrong.</p>
  <p>Is there a workaround for it Vue 2?</p>