有没有一种方法可以返回数组中一项的类型

时间:2020-10-11 15:47:46

标签: javascript typescript

我正在尝试定义一个TypeScript函数,该函数接受一个字符串数组,然后返回一个字符串。该字符串保证是数组中的选项之一。我希望返回类型为"string1" | "string2" | "string3",而不仅仅是通用的string

这样,调用函数的人可以在返回值上使用打字稿。

2 个答案:

答案 0 :(得分:1)

从问题定义看来,您似乎正在尝试将字符串array/tuple转换为union-type。一种方法是使用as const来实现,version 3.4可以使用。下面是示例代码-

const array = ['x', 'y', 'z'] as const; 
type UnionType = typeof array[number]; // type "x" | "y" | "z"

const func = (input: typeof array): UnionType => {
  return 'x';
};

console.log(func(['x', 'y', 'z']));

答案 1 :(得分:0)

使用联合类型:type myType = "string1" | "string2" | "string3"; 应该这样做