带有TypeScript的可选通用类型

亚历山大·米尔斯

我有一个泛型函数类型:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章