Typescript-具有泛型prop类型的回调

Typescript-具有泛型prop类型的回调,typescript,Typescript,我有如下代码,myFunc需要callback,它需要generic参数 看起来我可以传递不需要任何参数的函数,也不会收到任何错误通知,知道为什么吗 const myFunc = <T>(callback: (par: T) => void) => { const param = ('test' as any) as T; callback(param); }; const callback = (par: number) => { console.l

我有如下代码,
myFunc
需要
callback
,它需要
generic
参数

看起来我可以传递不需要任何参数的函数,也不会收到任何错误通知,知道为什么吗

const myFunc = <T>(callback: (par: T) => void) => {
  const param = ('test' as any) as T;
  callback(param);
};

const callback = (par: number) => {
  console.log(par);
};

myFunc<string>(callback); // Not working as suspected - OK
myFunc<string>(() => {}); // Why I do not getting any error notification here?
constmyfunc=(回调:(par:T)=>void)=>{
常量参数=('test'如有)如T;
回调(param);
};
常量回调=(par:number)=>{
控制台日志(par);
};
myFunc(回调);//未按怀疑的方式工作-正常
myFunc(()=>{});//为什么我在这里没有收到任何错误通知?

手册中对此进行了明确说明:

您可能想知道为什么我们允许像示例y=x中那样的“丢弃”参数。允许此赋值的原因是忽略额外的函数参数在JavaScript中非常常见。例如,Array#forEach为回调函数提供了三个参数:数组元素、其索引和包含的数组。不过,提供只使用第一个参数的回调非常有用


另请参见TypeScript常见问题解答的相关章节:

手册中对此进行了明确说明:

您可能想知道为什么我们允许像示例y=x中那样的“丢弃”参数。允许此赋值的原因是忽略额外的函数参数在JavaScript中非常常见。例如,Array#forEach为回调函数提供了三个参数:数组元素、其索引和包含的数组。不过,提供只使用第一个参数的回调非常有用

另请参见TypeScript常见问题解答的相关部分:

let x = (a: number) => 0;
let y = (b: number, s: string) => 0;

y = x; // OK
x = y; // Error