【发布时间】:2020-09-04 07:43:17
【问题描述】:
我有一个函数,只能接受两个可能的值(用于验证)。为此,我这样做:
interface PossibleValues {
key: "str1" | "str2";
}
我只能用 string 类型调用函数。这是我们的建筑设计,我必须处理它。
set({key: type})
因为 type 是 string 并且 key 只能接受 "str1" | "str2" 它说:
TS2322:类型 'string' 不可分配给类型 '"str1" | "str2"' 说得通。
问题是如何以最优雅的方式克服这个问题?我的意思是我想传递一个 string 但如果该字符串不是两个 "str1" | "str2"
我试图做的是:
set({key: type} as PossibleValues) 并且它停止了抱怨,但没有达到预期的行为。例如,如果我通过“str333”,它仍然有效。
有什么想法吗?
【问题讨论】:
标签: javascript typescript