gpt4 book ai didi

typescript - 如何定义命名函数的类型?

转载 作者:搜寻专家 更新时间:2023-10-30 21:01:06 24 4
gpt4 key购买 nike

function Foo(): string {}

表示 Foo 是一个返回 string 的函数。

interface SFC {
(props: Props): any;
}

const Foo: SFC = p => {};

意味着 Foo 是一个匿名函数,匹配签名 SFC 并且 pProps 类型。

如何声明匹配 SFCfunction Foo()?语法是什么?

即,我想使用 function 关键字(不是 const)声明一个函数,并且该函数本身是 SFC 类型。


这些不起作用:

function Foo: SFC () {}
function Foo() {}: SFC

最佳答案

有许多 TypeScript 提案明确指定声明为命名的提升函数(与表达式相对)的函数。它们都还没有被实现。 #22063似乎是最活跃的。

  • #16918 : (提案) 函数声明上下文类型化的语法
  • #22063 : 建议:函数声明的类型注解和接口(interface)
    • 欺骗 #37433 : 添加指定函数声明类型的机制
    • 欺骗 #39419 : 允许键入函数声明
    • 欺骗 #40455 : 提供一种方法来表明函数声明符合某种接口(interface)/类型
  • #34319 :使用接口(interface)描述函数签名
    • 欺骗 #39039 : 用于“实现”类型的函数声明语法(如 const C: React.FC<Props> = (props0) => ... )
  • #40378 : 在 FunctionDeclaration 上键入 Cast 或 Assertions

satisfies 的预期发布TypeScript 4.9 中的关键字( #47920#46827 )是相关的,但仅适用于表达式。它不会更改函数定义。

关于typescript - 如何定义命名函数的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45472944/

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