0
我有一個動態構建的JavaScript對象,包含我的應用程序的資源(翻譯字符串)。它看起來如下:在打字稿中使用javascript
var ResourceManager = (function() {
function ResourceManager() {
var currentLanguage = $('#activeLanguage').html();
this.resources = {
get Aanmelden() {
switch (currentLanguage) {
case "en-GB":
return "Register";
case "nl-NL":
return "Aanmelden";
default:
return "Aanmelden";
}
},
get AlgemeenOpslaan() {
switch (currentLanguage) {
case "en-GB":
return "Save";
case "nl-NL":
return "Opslaan";
default:
return "Opslaan";
}
}
};
}
return ResourceManager;
}());
整潔的事情是,這樣我可以使用智能感知找到我的翻譯,就像通過MVC提供的功能。當我在打字稿中工作時,有沒有辦法提供相同的功能?這裏的主要問題是,我可以這樣做:
declare class ResourceManager {
}
但是,這並沒有給我這個類的方法intellisense。我使用JavaScript而不打字的原因是因爲如果我動態構建一個打字稿文件,它似乎不會自動編譯到我想發送給客戶端的JavaScript文件。
有誰知道要麼通過打字稿資源文件而不是javascript來解決此問題的方法,或者讓我的其他打字稿文件與javascript對象上的intellisense一起工作?
這確實給了我intellisense,但現在每次添加一個新的資源時,我也需要添加一個屬性到接口。這聽起來很愚蠢,但我可以建立一個ts文件和一個js文件。我猜測,只用於智能感知和ts文件發送到客戶端。 請注意,問題是我似乎無法以編程方式構建打印稿文件,然後進行編譯,因此它在我的請求中包含爲js。 – Kai
@Kai NB:您可以[以編程方式調用TypeScript編譯器](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#a-simple-transform-function)。我編輯添加鏈接的答案。 – Paleo