gpt4 book ai didi

typescript - 限制参数函数的返回类型

转载 作者:行者123 更新时间:2023-12-05 02:37:29 24 4
gpt4 key购买 nike

我有一个以函数作为参数的函数。参数函数返回几个枚举之一。如何使用参数函数的返回类型推断包装函数的类型。

我认为举个例子更容易解释:

const foo = { a: 1, b: '2' }

function h(k: (() => 'a' | 'b')) {
return foo[k()]
}

const d = h(() => 'a')
// expected: d should be of type number
// actual: d is of type number | string

playground

最佳答案

您可以将返回的键类型定义为通用参数(它将被推断为单个键,而不是所有可能键的并集):

function h<K extends keyof typeof foo>(k: (() => K)) {
return foo[k()]
}

const d = h(() => 'a') // now number

Playground

关于typescript - 限制参数函数的返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69954875/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com