title: Renderless Vue Component in TypeScript
body: <p>I have a renderless component in JavaScript that I am trying to convert to TypeScript. I'm running into errors declaring the <code>render</code> function in a <code>Vue.extend</code>-ed component:</p>
  
  <pre class="lang-none prettyprint-override"><code>(method) ComponentOptions&lt;Vue, unknown, unknown, unknown, never[], Record&lt;never, any&gt;&gt;.render?(createElement: CreateElement, hack: RenderContext&lt;Record&lt;never, any&gt;&gt;): VNode
    No overload matches this call.
    The last overload gave the following error.
    Argument of type '{ render(): void; }' is not assignable to parameter of type 'ComponentOptions&lt;Vue, DefaultData&lt;Vue&gt;, DefaultMethods&lt;Vue&gt;, DefaultComputed, PropsDefinition&lt;Record&lt;string, any&gt;&gt;, Record&lt;string, any&gt;&gt;'.
      Types of property 'render' are incompatible.
        Type '() =&gt; void' is not assignable to type '(createElement: CreateElement, hack: RenderContext&lt;Record&lt;string, any&gt;&gt;) =&gt; VNode'.
          Type 'void' is not assignable to type 'VNode'.ts(2769)
          vue.d.ts(90, 3): The last overload is declared here.
  </code></pre>
  
  <p>This is an example of what I am trying to do in TypeScript:</p>
  
  <pre class="lang-js prettyprint-override"><code>import Vue from 'vue'
  
  export default Vue.extend({
    render() { // error happens when I add this. I tried typing the render with :VNode
               // and returning this.$scopedSlots.default({}), but error still occurs
    }
  })
  </code></pre>
  
  <p>How do I fix this?</p>