[英]How can I add optional named parameters to a TypeScript function parameter?
我希望能夠定義一個接受箭頭函數作為參數的方法。 函數參數應能夠自己定義0個或多個命名參數。 我怎樣才能做到這一點?
我試過了
public doSomething(fn: () => any) {}
和
public doSomething(fn: (...args) => any) {}
但是當我嘗試按以下方式調用它們時,它們都拋出“提供的參數不匹配”錯誤:
doSomething((test: string) => {})
( 請注意,此功能的參數類型和數量可能會因每次使用情況而有所不同,因此我無法在原始方法上設置類型。 )
我可以在傳遞的函數中使用...args
語法提供參數,但我希望能夠鍵入和命名特定的參數。
有沒有辦法做到這一點?
兩種選擇。 原因類型安全 。 如果您仔細閱讀下面的陳述,應該很清楚。
如果您的函數希望使用0個或多個參數調用該回調,則該回調必須可以接受(即具有可選參數),即
function doSomething(fn: () => any) {}
// All arguments need to optional
doSomething((a?:string)=>{});
如同 :
function doSomething(fn: (...args:string[]) => any) {}
// All arguments need to optional
doSomething((a?:string)=>{});
如果要使用完全為“ N”的參數調用回調,請在簽名中指定其名稱。 回調取決於采用還是忽略這些。 例如。 此回調將忽略它們:
// Specify the number of arguments
function doSomething(fn: (ar1:string,arg2:string) => any) {}
doSomething(()=>{});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.