我正在尝试定义一个TypeScript函数,该函数接受一个字符串数组,然后返回一个字符串。该字符串保证是数组中的选项之一。我希望返回类型为"string1" | "string2" | "string3"
,而不仅仅是通用的string
。
这样,调用函数的人可以在返回值上使用打字稿。
答案 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";
应该这样做