【发布时间】:2021-01-21 19:13:24
【问题描述】:
如何定义和初始化一个可以为空的对象。
有类型
type Plan = 'plan1' | 'plan1';
interface IPlan {
name: string
}
当我尝试初始化一个空对象时,我收到了一个错误
const plans: Record<Plan, Readonly<IPlan> = {}; // **ERROR HERE**
plans.plan1 = {
name: 'Plan #1'
}
类型“{}”中缺少属性“plan1”,但类型“Record' 中是必需的。
【问题讨论】:
-
您的完整用例是什么?空对象
{}不是Record<Plan, Readonly<IPlan>类型。你为什么不去const plan1 = { name: "Plan #1" }然后const plans = { plan1 }?换种方式问:为什么要初始化empty,然后手动填充,而不是最后直接声明你想要的完整的plans对象?
标签: typescript typescript-typings