我们在一个相当大的普通JavaScript应用程序中使用定制的注入模式(更多的是一个有许多消费者的框架)。该模式允许我们明确说明每个JS模块的依赖项。这有两个主要原因:在单元测试模块时很容易产生存根依赖关系,并且它允许我们的使用者在运行时动态地替换模块实现。
我们已经开始将所有模块迁移到TypeScript,但在转换一些公开自定义类型的模块时遇到了困难。问题是,TypeScript似乎希望立即导出自定义类型,但实际上我们希望在通过函数调用(我们的依赖项注入模式)提供运行时依赖关系之后导出该类型。
所以问题是如何在不损害模式本身的情况下将下面的注入模式转换为TypeScript?
modul
我正在努力学习如何使我的应用程序在所有文件中具有相同的“外观”,相同的模式,但我不知道这是否是正确的做法。
我想知道在软件开发中是否更正确,是将应用程序限制为一种类型的模式。
例如,这就是我的应用程序的样子(只是一块)
Api.js:
'use strict'
var Server = require('./server');
var Api = {
init: function() {
Server.init('start');
}
};
Server.js:
'use strict'
var Server = {
我想要完成的任务的伪代码:
if(in dev environment){
//write unminified scripts to the head tag
}
else{ // in production
// write the minified distribution script to the head
}
(备选案文1)在Chrome桌面浏览器中间歇工作,在Safari Mobile中间歇工作。
function write_to_head (path ,js_file_src){
var js_script = document.createElement(&
我正在尝试编写的定义文件之一是一个过滤器。过滤器代码最初从JS文件加载,然后使用该过滤器的字符串名称。
export class Filter
{
do stuff...
}
问题是每个过滤器都有自己的属性。
例如,“大理石”过滤器可能具有“频率”值,而"BlurX“过滤器具有”模糊“值。
因此:
//loaded MarbleFilter.js as a script previously
var filter: Filter = new Filter("Marble");
filter.frequency = 10 //error
我该如何处理这种情况?