亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

TypeScript函數重載

TypeScript函數重載

TypeScript語言規范的6.3節討論了函數重載,并提供了有關如何實現此功能的具體示例。但是,如果我嘗試這樣的事情:export class LayerFactory {     constructor (public styleFactory: Symbology.StyleFactory) { }    createFeatureLayer (userContext : Model.UserContext, mapWrapperObj : MapWrapperBase) : any {                    throw "not implemented";    }                     createFeatureLayer(layerName : string, style : any) : any {        throw "not implemented";     }        }我收到一個編譯器錯誤,指示重復的標識符,即使函數參數的類型不同。即使我向第二個createFeatureLayer函數添加了一個附加參數,我仍然會遇到編譯器錯誤。請給我個主意。
查看完整描述

3 回答

?
揚帆大魚

TA貢獻1799條經驗 獲得超9個贊

這可能是因為,當兩個函數都編譯為JavaScript時,它們的簽名是完全相同的。由于JavaScript沒有類型,我們最終創建了兩個帶有相同數量參數的函數。因此,TypeScript限制我們創建此類函數。


TypeScript支持基于參數數量的重載,但是如果將其與OO語言進行比較,則要遵循的步驟有些不同。在回答另一個SO問題時,有人用一個很好的例子來解釋它:方法重載?。


基本上,我們正在做的是,我們只創建一個函數和許多聲明,以使TypeScript不會產生編譯錯誤。當此代碼編譯為JavaScript時,將僅可見具體功能。由于可以通過傳遞多個參數來調用JavaScript函數,因此它可以正常工作。


查看完整回答
反對 回復 2019-10-28
  • 3 回答
  • 0 關注
  • 898 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號