123. Vue 的 props 类型基本实现

困难0

本挑战继续自 113. 简单的 Vue 类型,你应该先完成那个挑战,并根据它修改你的代码开始本挑战

简单的 Vue 类型 的基础上,我们现在新增了一个 props 字段在选项中。这个字段是 Vue props 选项的简化版。以下是一些规则。

props 是一个对象,每个字段代表实际注入到 this 中的 props。注入的 props 在所有上下文中都可以访问,包括 datacomputedmethods

一个 prop 可以通过构造函数或一个包含 type 字段的对象来定义,type 字段包含构造函数。

例如:

props: {
  foo: Boolean
}
// 或者
props: {
  foo: { type: Boolean }
}

应该推断为 type Props = { foo: boolean }

当传入多个构造函数时,类型应该推断为联合类型。

props: {
  foo: { type: [Boolean, Number, String] }
}

应该推断为 type Props = { foo: boolean | number | string }

当传入一个空对象时,键的类型应该推断为 any

对于更具体的情况,可以参考测试用例部分。

在这个挑战中不考虑 requireddefault 和数组类型的 props 。

评论(0)
题库

TypeScript

加载中...