Jiang-Xuan / blog

个人博客
1 stars 0 forks source link

如何声明一个 props 的一部分 #7

Open Jiang-Xuan opened 4 years ago

Jiang-Xuan commented 4 years ago

比如, 一个组件的 props 很多, 但是想单独抽出来几个配置写成一个对象.

interface Person {
  name: string;
  age: number
}

class Person extends React.Component<Person, any> {}

const age = { age: 14 } // age 为 组件的 props 的一部分, 声明这里的 type 来获取智能提示

<Person {…age} name=“哈哈” />

image

Jiang-Xuan commented 4 years ago

image

通过截图中的信息可以看出 Partial, 并不能完美的解决这个问题,

image 这里在写这个对象的时候确实得到了 type 的提示

但是传递给 Person 组件的时候如果是必须的 props, 会报错误, 因为在 partial 这个变量当中是可选的.

所以目前的结论是:

Answer

如果是可选的 props, 可以通过 Partial 的方式来抽离出某几个 props, 但如果是必须的, 那必须直接传递给组件