有沒有辦法在TypeScript中設置this
的類型?在TypeScript中輸入'this`
我敢肯定,它有很多用途,但在我的特殊情況下,它是用於輸入一個JS庫,併爲它編寫一個插件。
例如:
// Some library
declare var SomeLib: sl.ISomeLibStatic;
declare module sl {
interface ISomeLib extends ISomeLibApi {
baseFn(): void;
}
interface ISomeLibStatic {
new(): ISomeLib;
API: ISomeLibApi;
}
interface ISomeLibApi {
}
}
// Plugin file
declare module sl {
// Extend the API signature declaration
interface ISomeLibApi {
extraFn(): void;
}
}
module sl {
// Implement the function
SomeLib.API.extraFn = function() {
// Get typing on this here
this.baseFn();
};
}
任何人知道的方式來做到這一點沒有像變量:var typedThis: ISomeLib = this;
?
目前我發現的唯一方法是將其投影到每個用法<ISomeLib>this
上,這很麻煩,並且沒有在函數的類型中定義。
我認爲這是根據Typescript規範(章節4.2)。沒有包含類,所以它是一個簡單的函數聲明,其中'this'被輸入到'Any'。既然這看起來很基本,我猜想TS有一個很好的理由不是在這裏打字 - 但我想不起來。也許別人會知道一個理由。 –
您可以在https://typescript.codeplex.com/workitem/507上投票的相關功能請求 – basarat
@basarat謝謝,我搜索了跟蹤器,但由於某種原因無法找到問題:S。 – Aidiakapi