给出以下代码
interface IPerson {
firstName: string;
lastName: string;
}
var persons: { [id: string]: IPerson; } = {
"p1": { firstName: "F1", lastName: "L1" },
"p2": { firstName: "F2" }
};
Run Code Online (Sandbox Code Playgroud)
为什么不初始化被拒绝?毕竟,第二个对象没有"lastName"属性.
在Javascript应用程序中搜索一些内存泄漏,我尝试使用Chrome DevTools Profiler.是否有一些详细信息描述了可能在其中找到的所有条目?
例如,在执行一个简单的"打开主页,打开另一个页面,返回主页"并查看快照的比较后,我可以找到具有大对象数和我感兴趣的行"(数组)".打开那个节点时,我看到成千上万行...
我在哪里可以读到这个?
给出以下HTML/JS(http://jsfiddle.net/mgs_jsfiddle/gUhm2/)
<div data-bind="foreach: users">
<p data-bind="click: $root.onClick">
<span data-bind="text: id"></span>
<span data-bind="text: firstName"></span>
<span data-bind="text: $root.isSelected($data)"></span>
</p>
</div>
$(function() {
function ViewModel() {
var self = this;
self.users = [
{ id: 1, firstName: "Bob" },
{ id: 2, firstName: "David" },
{ id: 3, firstName: "Walter" }
];
self.selectedId = ko.observable(1);
self.isSelected = function(user) {
return user.id === self.selectedId() ? "YES" : "NO";
};
self.onClick = function(user) {
self.selectedId(user.id);
}
};
ko.applyBindings(new ViewModel());
});
Run Code Online (Sandbox Code Playgroud)
显示一个列表.通过单击一行,行的id将存储到selectedId. …
有几个Javascript文件,组织在文件夹Scripts/folder1,Scripts/folder2,...
使用requirejs.config.baseUrl,文件夹被定义为默认文件夹,例如Scripts/folder1.然后在requirejs.config.paths中,一些文件仅使用文件名进行寻址,一些文件使用相对路径进行寻址(如../folder2/blabla).
编码Typescipt文件folder2/blabla.ts时,我们需要来自folder1的模块"math".所以我们写
import MOD1 = module("../folder1/math");
Run Code Online (Sandbox Code Playgroud)
关于打字稿,任何事都可以.它可以找到模块.但是,有了requirejs就会出现问题.它不知道模块"../folder1/math",它只知道"数学".
问题似乎是import语句需要一个文件名,从当前目录开始处理.但是,这不是requirejs知道的模块ID.
在requirejs配置和Typescript中的import语句中的任何地方使用绝对路径可以解决问题.
我做错了吗?或者是绝对的路径?
使用 Visual Studio 2012 Update 2、Web Essentials 2.7。
假设LESS有错误。保存文件时,预览窗格中会显示一条消息。上面写着...
/*
Compile Error.
See error list for details
*/
Run Code Online (Sandbox Code Playgroud)
LESS 中出现什么样的错误并不重要。任何错误均按上述方式处理。
能怎么办,所以给出详细的错误信息?
我想加载jQuery加上几个带requirejs的插件.设置配置对象"paths"和"shim"属性有效.所以从TypeScript中我可以要求jQuery并通过amd依赖加载插件.
现在我想最小化加载jQuery和插件所需的代码.我可以以某种方式告诉requirejs"每当需要jQuery时,通过路径属性中给出的路径加载它.然后加载以下插件......".
基本上这将允许我只需要jQuery.所有插件也会自动加载.
我尝试将Breeze与:TypeScript,AMD模块,requirejs,knockout一起使用.
看看Breeze代码,我可以看到它需要通过名称"ko"进行淘汰.但是,还有其他组件需要通过名称"knockout"进行淘汰.
因此,如果我使用路径"knockout"创建requirejs的配置,加载器将抱怨"ko"尚未加载.如果我手动更改Breeze代码,将"ko"替换为"knockout",一切正常.
可以做什么,所以不需要更改Breeze代码?
javascript ×4
requirejs ×3
amd ×2
knockout.js ×2
typescript ×2
breeze ×1
dictionary ×1
less ×1
profiler ×1