遇到了一個簡單的問題,這個問題在與打字稿相關的「這個」範圍內的類似問題中被提及。使用打字稿的草坪椅
我有一個存儲服務,爲我的本地存儲問題包裹lawnchair。現在我正在將這段代碼遷移到Typescript中,我遇到了一個我無法解決的問題。
public GetAll(callback: Function) {
Lawnchair({ name: this.storeName }, function() {
this.all(callback);
});
};
現在在上面lawnchair的例子讓這成爲你actioning實際的商店,但打字稿將使它成爲您使用的類的實例。那麼有沒有解決這個問題的方法?
==編輯==
更新的問題例如略,以不與底層lawnchair方法及周邊類方法混淆。
這裏是在編譯的時候我得到的錯誤:
屬性「所有」不上 類型的「LawnchairStorageService」
哪個是正確的,這種方法確實存在的價值不存在於包含的類實例中,它存在於lawnchair封閉範圍這個的上下文中。
這是生成的代碼(運行時)的問題,還是TypeScript不理解'this'是什麼(編譯時間)?如果它是前者附加生成的代碼,並說出它有什麼問題是有幫助的。如果是後者將「這個」投射到你所知道的事情上,應該這樣做。 – 2013-03-28 15:20:05
它是後者,打字稿編譯器拋出一個錯誤,我不認爲鑄造* this *會起作用,因爲它仍然是基礎類實例而不是lawnchair實例。我會盡快更新錯誤的問題! – Grofit 2013-03-28 15:25:05
這是否工作:http://www.typescriptlang.org/Playground/#src=class%20Test%20%7B%0A%09public%20GetAll(callback%3A%20Function)%20%7B%0A%09%09return %20function%20(回調)%7B%0A%09%09Lawnchair(%7B%20name%3A%20this.storeName%20%7D%2C%20function%20()%20%7B%0A%20%20%20 %20%20%20%20%20%20%20%20%20%20%20%20%20this.all(回調)%3B%0A%20%20%20%20%20%20%20% 20%20%20%20%20%7D)%3B%0A%09%09%7D(回調)%3B%0A%09%09%7D%3B%0A%7D – JcFx 2013-03-28 15:46:24