123. Vue 的 props 类型基本实现

困难1

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

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

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

一个 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 。

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

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

评论(0)
题库

TypeScript

加载中...