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