TypeScript函数,用于检查类型是否不可分配给自定义类型

时间:2017-09-06 02:51:39

标签: javascript typescript

例如我输入了:

type Fruits = 'apple' | 'lemon' | 'orange';  

我有一些这样的功能:

const validateFruit = (value): boolean => {
  /// return true if value has type Fruits
}

有没有解决方案来创建这个功能?

2 个答案:

答案 0 :(得分:1)

如果您使用字符串枚举,则可以更轻松地实现此目的:

enum Fruits { apple = 'apple',  lemon = 'lemon',  orange = 'orange' }; 
const validateFruit = (value): value is Fruits => Fruits[value] !== undefined;

答案 1 :(得分:-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'));