[英]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
};
但我想知道是否有一種方法可以為error參數添加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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.