0 %

全局 API:常规​

2026-02-14 23:24:20

详细信息

第一个参数是一个组件选项对象。返回值将是该选项对象本身,因为该函数实际上在运行时没有任何操作,仅用于提供类型推导。

注意返回值的类型有一点特别:它会是一个构造函数类型,它的实例类型是根据选项推断出的组件实例类型。这是为了能让该返回值在 TSX 中用作标签时提供类型推导支持。

你可以像这样从 defineComponent() 的返回类型中提取出一个组件的实例类型 (与其选项中的 this 的类型等价):

tsconst Foo = defineComponent(/* ... */)

type FooInstance = InstanceType函数签名 ​仅在 3.3+ 中支持defineComponent() 还有一种备用签名,旨在与组合式 API 和渲染函数或 JSX 一起使用。

与传递选项对象不同的是,它需要传入一个函数。这个函数的工作方式与组合式 API 的 setup() 函数相同:它接收 props 和 setup 上下文。返回值应该是一个渲染函数——支持 h() 和 JSX:

jsimport { ref, h } from 'vue'

const Comp = defineComponent(

(props) => {

// 就像在