gpt4 book ai didi

typescript - 如何将可选命名参数添加到 TypeScript 函数参数?

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

我希望能够定义一个接受箭头函数作为参数的方法。函数参数应该能够定义 0 个或多个自己的命名参数。我该怎么做?

我试过了

public doSomething(fn: () => any) {}

public doSomething(fn: (...args) => any) {}

但是当我尝试按如下方式调用它时,它们都抛出“提供的参数不匹配”错误:

doSomething((test: string) => {})

(请注意,此函数的参数类型和数量可能因每次使用而异,因此我无法在原始方法上设置类型。)

我可以在传递的函数中使用 ...args 语法提供参数,但我希望能够键入和命名特定参数。

有办法吗?

最佳答案

两个选项。原因类型安全。如果您完成以下陈述,应该会很清楚。

修复回调:

如果您的函数希望使用 0 个或更多参数调用回调,则回调必须适合它(即具有可选参数)即

function doSomething(fn: () => any) {}

// All arguments need to optional
doSomething((a?:string)=>{});

同于:

function doSomething(fn: (...args:string[]) => any) {}

// All arguments need to optional
doSomething((a?:string)=>{});

修复回调签名:

如果您要使用恰好“N”个参数调用回调,请在签名中指定它们的名称。由回调接受忽略这些。例如。此回调忽略它们:

// Specify the number of arguments
function doSomething(fn: (ar1:string,arg2:string) => any) {}

doSomething(()=>{});

关于typescript - 如何将可选命名参数添加到 TypeScript 函数参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24304607/

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