首页 > 解决方案 > 如何在函数中使用第二个参数来进行第一个参数的类型推断,同时保留第一个参数的类型?

问题描述

假设我有这个代码:

type Settings = Record<string, "required" | "optional">
type Item<T> = Partial<Record<keyof T, "required" | "optional">>

function create<T extends Settings>(settings: T, items: Item<T>) {}

const settings: Settings = {
    email: "required"
}

create(settings, {
// No type inference for email
})

我希望第二个参数仅在键中具有第一个参数的类型推断,以便email在您键入时显示在那里。Settings如果我从中删除类型settings并将其强制转换为,则可以修复它const

const settings = {
    email: "required"
} as const

现在设置中的类型推断已经消失,因为设置现在是consttype 而不是Settings. 请在这件事上给予我帮助

标签: typescript

解决方案


推荐阅读