【发布时间】:2020-11-09 00:22:56
【问题描述】:
我有以下类型:
type Fruit = "Banana" | "Melon" | "Apple";
我想创建一个函数来返回Fruit 的所有可能键。比如:
function getAllFruits(): Fruit[] {
return ["Banana", "Melon"]; // <-- Should throw an error due to missing "Apple".
}
我这样做的原因是我想确保没有人会忘记将以下值添加到数组中。
另一种方法是采用相反的方式 - 创建一个返回所有类型的函数,然后将类型 Fruit 设置为函数的返回类型。无论如何,我对这种方法不感兴趣。
有什么想法吗?
更新 1
我希望看到一个不涉及枚举的解决方案(如果可能的话)。
【问题讨论】:
-
@derpirscher 我有兴趣看到没有枚举的解决方案
-
为什么不直接使用:type Fruit = ["Banana", "Melon" , "Apple"] ?
-
@captain-yossarian 因为我希望函数值由类型推断,而不是相反。本质上,类型应该决定值应该是什么,而不是函数。
标签: typescript