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