我有一个泛型函数类型:
export type EVCb<T> = (err: any, val?: T) => void;
该类型可以像这样使用:
const v = function(cb: EVCb<boolean>){
cb(null, true); // compiles correctly
};
const v = function(cb: EVCb<boolean>){
cb(null, 'yo'); // does not compile
};
但我想知道是否有一种方法可以optional
为error参数添加类型,因为现在总是any
。像这样的东西:
export type EVCb<T, E?> = (err: E | any, val?: T) => void;
用户将这样使用它:
EVCb<boolean, Error>
或者他们可以选择省略第二个参数,然后执行以下操作:
EVCb<boolean>
这有可能吗?
如果您提供类型参数的默认值,则它可以是可选的:
export type EVCb<T, E = any> = (err: E, val?: T) => void;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句