在 TypeScript 中定义返回函数的函数类型时出现“找不到参数”
Posted
技术标签:
【中文标题】在 TypeScript 中定义返回函数的函数类型时出现“找不到参数”【英文标题】:"Cannot find param" on defining function type returning a function in TypeScript 【发布时间】:2019-03-08 11:52:41 【问题描述】:我无法在 TypeScript 中定义返回另一个函数的函数类型。
这行得通:
type HandleDoc = (doc: any) => any
type SyncHookDoc = (updateStore, doc: any, store) => (void | HandleDoc)
但是如果我尝试 1 行它不起作用:
type SyncHookDoc = (updateStore, doc: any, store) => (void | (doc: any) => any)
错误:
找不到名称“doc”。
'any' 仅指一种类型,但在这里用作值。
【问题讨论】:
【参考方案1】:您需要在函数签名周围额外添加一组()
:
type SyncHookDoc = (updateStore, doc: any, store) => (void | ((doc: any) => any))
【讨论】:
为什么会这样? 我的猜测是|
对 => 有更高的优先级。因此编译器会将类型视为 ` (void | (doc: any)) => any)`以上是关于在 TypeScript 中定义返回函数的函数类型时出现“找不到参数”的主要内容,如果未能解决你的问题,请参考以下文章
两个具有静态返回类型的 TypeScript 函数。语法不同,但它们似乎做同样的事情?