如何为TypeScript的randomFromArray函数实现动态类型推断?
实现动态类型推断的数组随机元素函数
你可以通过泛型来实现动态类型推断,让函数根据传入的数组元素类型自动推导返回值类型。修改后的代码如下:
const randomFromArray = <T>(array: T[]): T => { return array[randomNumberFromRange(0, array.length - 1)]; };
说明:
<T>是泛型参数,用来捕获传入数组的元素类型。TypeScript会在调用函数时,根据你传入的数组自动推断T的具体类型。- 参数
array被定义为T[],表示这是一个元素类型为T的数组。 - 函数返回类型指定为
T,确保返回值的类型和数组元素类型完全一致。
示例调用:
// 返回类型自动推断为string const randomColor = randomFromArray(['red', 'blue', 'green']); // 返回类型自动推断为number const randomNum = randomFromArray([10, 20, 30]); // 返回类型自动推断为string | boolean(联合类型) const randomMixed = randomFromArray(['foo', true, 'bar']);
这样无论你传入什么类型的数组,函数都会返回对应类型的元素,彻底解决unknown或any导致的类型模糊问题。
内容的提问来源于stack exchange,提问作者Bobby Gagnon
相关产品推荐
相关产品推荐

