打字稿功能,如果类型是不能分配给自定义类型

打字稿功能,如果类型是不能分配给自定义类型

问题描述:

比如我有型:打字稿功能,如果类型是不能分配给自定义类型

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; 
+1

谢谢!看起来这是一个解决方案。 –

你试过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

这是一个解决方案,但不确切,我问。只是因为在这种情况下,我需要将类型复制到数组中。 –