Vue JSX props slots 类型定义问题?

请教各位 defineComponent((props, {emit, slots}) => { return () => <div></div> })
这种 JSX 语法写法的时候,大家是怎么声明 props emits slots 的类型的?
我遇到了以下问题:

  1. 模板里可以通过 defineSlots 得到类型提示,JSX 应该怎么做比较好?
  2. props 定义运行时类型检测的时候,组件上写 class='' 的话 ts 会报错。报错图如下:

image.png

image.png

阅读 2.4k
1 个回答
import { defineComponent, SetupContext } from 'vue'

interface Props {
  text?: string;
}

const MyComponent = defineComponent({
  name: 'MyComponent',
  props: {
    text: String,
  },
  setup(props: Props, { emit, slots }: SetupContext) {
    return () => (
      <div>
        {props.text}
        {slots.default && slots.default()}
      </div>
    )
  },
})

export default MyComponent
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏