【发布时间】:2021-11-23 06:21:22
【问题描述】:
我正在尝试创建一个类型来表达以下约束:
// Valid
{
"foo": "foo"
}
// Valid
{
"bar": "bar"
}
// Not valid
{
"foo": "bar"
}
我认为我应该能够使用映射类型来做到这一点:
type KeyValueSameDict = {
[key in string]: key
};
但是,这只是推断类型Record<string, string>。如果我提前知道钥匙,我也认为我可以做到这一点:
type KeyValueSameDictKeys = "foo" | "bar";
type KeyValueSameDict = {
[v in KeyValueSameDictKeys]?: v;
};
但是,我想要一种不必这样做的方法。
我正在尝试做的事情可能吗?
【问题讨论】:
标签: typescript