带有 TypeScript 的可选泛型类型
Optional generic type with 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
类型,因为现在它总是 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;
我有通用函数类型:
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
类型,因为现在它总是 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;