gpt4 book ai didi

TypeScript 为 Type 的缺失键提供默认值

转载 作者:行者123 更新时间:2023-12-04 09:38:49 26 4
gpt4 key购买 nike

可能有一个非常明显的答案,但是如何执行以下操作:

type testStatus = {
foo: boolean;
bar: boolean;
baz: boolean;
}

const makeDefaults = (o: Partial<testStatus>) => {
const keys = // array of `testStatus` keys?
keys.forEach(k => !(k in o) && (o[k] = false)) // provide a default value for missing keys
return o
}

const obj: Partial<testStatus> = { foo: true, bar: false }

const defaultedObj = makeDefaults(obj) // { foo: true, bar: false, baz: false }

基本上从一个类型中检索所有键,循环遍历?

最佳答案

您无法从类型中获取键作为值,因为类型在运行时不存在。如果 type 很简单并且所有键的值类型与示例中相同 - 您可以先创建一个键数组,然后从中创建类型:

const KEYS = ['foo', 'bar', 'baz'] as const;

type testStatus = { [K in typeof KEYS[number]]: boolean };

const makeDefaults = (o: Partial<testStatus>) => {
KEYS.forEach(k => !(k in o) && (o[k] = false))
return o
}

Playground

关于TypeScript 为 Type 的缺失键提供默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62424985/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com