java文本框设置为隐式_打字稿:隐式没有参数函数类型

我想要作为参数给出的函数的限定类型 . 我希望这个类型是一个没有参数的函数,它返回一个包含参数的void函数(Action)或者它返回自身的void函数 .

这是我想要使用的代码:

interface JsonArray extends Array { }

interface Json {

[x: string]: string | number | boolean | Date | Json | JsonArray;

}

type Action = (arg1: string, arg2: Json | JsonArray) => void;

type ReturningAction = () => Action;

function required(arg1: string, ...validationFunctions: Array) {

console.log("Test");

}

function oneOf(arg1: string): (arg1: string, arg2: Json | JsonArray) => void {

return (arg1: string, arg2: Json | JsonArray) => {

console.log("Testing");

}

}

function notEmpty(): (arg1: string, arg2: Json | JsonArray) => void {

return (arg1: string, arg2: Json | JsonArray) => {

console.log("Empty");

}

}

required("field", oneOf); // Shouldn't be accepted

required("field", oneOf("test")) // Should be accepted

required("field", notEmpty); // Should be accepted

但是看起来,TypeScript忽略了函数定义中的额外参数而不是它预期的参数 . 这可以解决吗?

即使我做以下事情:

function required(arg1: string, ...validationFunctions: Array void>) {

console.log("Test");

}

required("field", oneOf); // Shouldn't be accepted

required("field", oneOf("test")) // Should be accepted

required("field", notEmpty); // Shouldn't be accepted

required("field", notEmpty()); // Should be accepted

由于某种原因,所有都被接受,但只有被调用的函数适用 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值