打字稿功能,如果类型是不能分配给自定义类型
问题描述:
比如我有型:打字稿功能,如果类型是不能分配给自定义类型
type Fruits = 'apple' | 'lemon' | 'orange';
我有一些像这样的功能:
const validateFruit = (value): boolean => {
/// return true if value has type Fruits
}
有什么解决方案来创建此功能?
答
如果使用字符串代替枚举,你可以这样更容易实现:
enum Fruits { apple = 'apple', lemon = 'lemon', orange = 'orange' };
const validateFruit = (value): value is Fruits => Fruits[value] !== undefined;
答
你试过type-guards?
类似下面:
type Fruits = 'apple' | 'lemon' | 'orange';
function isFruits(value: Fruits | any): value is Fruits {
return ['apple', 'lemon', 'orange'].indexOf(value) > -1;
}
console.log(isFruits('dd'));
+0
这是一个解决方案,但不确切,我问。只是因为在这种情况下,我需要将类型复制到数组中。 –
谢谢!看起来这是一个解决方案。 –