我有以下类型(简化为brewity):
type Wrapper<T extends string> = {
value: T
}
type Mapping = {
[T in string]: Wrapper<T>
}
我这样做的目的是限制T
在Wrapper
中的可能值,对于任何给定的键T
。如果我这样做,我希望发生什么:
const mapping: Mapping = {
"a": { value: "b" },
}
是有一个编译器错误,因为"b"
是不能分配给"a"
,但由于某种原因,这编译。我做错了什么?
1条答案
按热度按时间omqzjyyz1#
为了避免编译时错误,您应该使用
as
关键字创建一个具有所需约束的Map类型。试试这个:
是否也可以创建一个实用函数: