typescript对象解构使用默认值,类型被改变?

image.png

问下这个问题如何解决呢?在解构一个对象时使用了赋值默认值。然后job对象的类型就变成{}

阅读 2k
1 个回答

解构时默认赋值不准确,要么改默认值,要么改类型定义。

改默认值:

const data: Type = {
    job: { position: '' },
    user: { name: '' }
};
const { job = { position: '' }, user } = data;

该类型定义:

interface Type {
    job: { position?: string; }
    // ...
}
// ...
const { job = {}, user } = data;

或者强制类型推导,但不推荐:

const { job = ({} as Type['job']), user } = data;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进