【发布时间】:2021-10-09 13:50:35
【问题描述】:
我正在编写许多函数(用于服务器请求),每个函数返回类型都扩展了某种类型。
我希望 typescript 限制返回类型以扩展预定义的已知类型,但我希望 typescript 采用返回类型的推断类型(因为它可能更准确)。
例如,假设所有函数都必须返回字符串,所以:
type myFuncsType = (...args: any) => string
每个函数都必须扩展这种类型。
现在假设我的函数总是返回一个常量字符串:
const myFunc1 = () => "MyString" as const
// the type is inffered:
const myVal = myFunc1()
// typeof myVal = "MyString"
我们还说过我们的函数必须扩展预定义的已知类型(myFuncsType),但是在分配类型时,通用类型会接管推断出的准确类型,这是我想避免的:
const myFunc1: myFuncsType = () => "MyString" as const
const myVal = myFunc1()
// typeof myVal = string
我尝试用泛型解决它,但是泛型需要传递预定义的类型,并且在声明期间返回类型不可用。
如何限制返回类型以扩展预定义类型,但返回从声明中推断出的确切返回类型?
【问题讨论】:
-
您能否添加一个更完整的示例来说明您必须使用
myFuncsType的场景?
标签: typescript typescript-generics