随着项目变得越来越大,我想从JavaScript切换到TypeScript以帮助进行代码管理.然而,我们使用许多库作为amd模块,我们不想将其转换为TypeScript.
我们仍然希望将它们导入TypeScript文件,但我们也不想生成定义文件.我们怎样才能做到这一点?
例如新的Typescript文件:
/// <reference path="../../../../definetelyTyped/jquery.d.ts" />
/// <reference path="../../../../definetelyTyped/require.d.ts" />
import $ = require('jquery');
import alert = require('lib/errorInfoHandler');
Run Code Online (Sandbox Code Playgroud)
这lib/errorInfoHandler是一个amd模块,包含在我们不想触及的巨大JavaScript库中.
使用上面的代码会产生以下错误:
Unable to resolve external module ''lib/errorInfoHandler''
Module cannot be aliased to a non-module type.
Run Code Online (Sandbox Code Playgroud)
这实际上应该产生以下代码:
define(["require", "exports", "jquery", "lib/errorInfoHandler"], function(require, exports, $, alert) {
...
}
Run Code Online (Sandbox Code Playgroud)
有没有办法将JavaScript库作为amd模块导入TypeScript,并在TypeScript文件中使用它而不制作定义文件?
我有以下代码
<table style="height: 275px; width: 188px">
<tr>
<td style="width: 259px;">
main page
</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
主页面出现在单元格的中心,我希望它出现在顶部.
我有几十个单元测试,我想修复我现在正在处理的代码,但每次运行测试都要花30秒多时间进行单元测试(我认为反射是其中一些的原因).这一个和许多其他测试运行不到一秒钟,但禁用然后启用单元测试很烦人.
有没有办法说现在运行这个测试?
-edit-我正在使用带有内置单元测试系统的Visual Studio 2010.右键单击任何代码,然后选择创建项目的创建单元测试.
我正在为应用程序开发测试.有一个方法有一个params数组作为参数.我已经使用Moq设置了该方法但是当我运行测试时,该方法的返回值为null,这意味着它没有被模拟.
这是一个代码示例:
public interface ITicketManager {
string GetFirstTicketInQueueIfMatches(params string[] ticketsToMatch);
}
public class TicketManager : ITicketManager {
private Queue<string> ticketQueue = new Queue<string>();
public string GetFirstTicketInQueueIfMatches(params string[] ticketsToMatch) {
var firstQueuedTicket = ticketQueue.Peek();
var firstQueuedTicketMatchesAnyOfRequested = ticketsToMatch.Any(t => t == firstQueuedTicket);
if(firstQueuedTicketMatchesAnyOfRequested)
return firstQueuedTicket;
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
模拟代码如下所示:
var mock = new Mock<ITicketManager>();
mock.Setup(m => m.GetFirstTicketInQueueIfMatches(It.IsAny<string>()))
.Returns(p => {
if(p.Contains("A"))
return "A";
return null;
});
Run Code Online (Sandbox Code Playgroud)
为什么它永远不会被嘲弄的方法?
BOSH是......
一种传输协议,通过有效地使用多个同步HTTP请求/响应对来模拟两个实体(例如客户端和服务器)之间的长期双向TCP连接的语义,而无需使用频繁的轮询或分块响应.
这听起来像WebSockets和HTTP长轮询,除了它使用两个开放的HTTP连接而不是一个,并且不扩展HTTP协议.
两个协议之间有什么区别,哪个用例更喜欢WebSockets而不是BOSH?
假设我在.txt扩展名的目录中有大量文件.
如何.c使用以下命令行环境将所有这些文件的扩展名更改为:
如何检查FirstOrDefaultLINQ函数返回的对象是否实际上是默认值?
例如:
Contact contact = dbo.contact
.Where(m => m.contactName == "Stackoverflow")
.FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以检查上面的联系人是否是默认值而不是使用以下内容?
if (!contact.contactName.Equals("Stackoverflow"))
// do something
Run Code Online (Sandbox Code Playgroud) 我使用editable: "popup" Telerik的演示页面上显示的方式编辑网格.编辑网格后,我希望网格刷新.在编辑网格后,网格是否有任何调用的事件?
我试图使用数据绑定事件.在这种情况下,我将数据源读取,但它告诉我刷新网格是一个无限循环.我试图使用saveChanges事件,但它无法正常工作.
@(Html.Kendo().Grid<Kendo.Mvc.Examples.Models.ProductViewModel>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(p => p.ProductName);
columns.Bound(p => p.UnitPrice).Width(100);
columns.Bound(p => p.UnitsInStock).Width(100);
columns.Bound(p => p.Discontinued).Width(100);
columns.Command(command => { command.Edit(); command.Destroy(); }).Width(160);
})
.ToolBar(toolbar => toolbar.Create())
.Editable(editable => editable.Mode(GridEditMode.PopUp))
.Pageable()
.Sortable()
.Scrollable()
.Events(events => events.Change("saveChanges "))
.HtmlAttributes(new { style = "height:430px;" })
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
.Events(events => events.Error("error_handler"))
.Model(model => model.Id(p => p.ProductID))
.Create(update => update.Action("EditingPopup_Create", "Grid"))
.Read(read => read.Action("EditingPopup_Read", "Grid"))
.Update(update => update.Action("EditingPopup_Update", "Grid"))
.Destroy(update => update.Action("EditingPopup_Destroy", "Grid")) …Run Code Online (Sandbox Code Playgroud) 我有一个方法,使用后台工作程序轮询DLL的状态,如下所示:
var timeout = DateTime.Now.AddSeconds(3);
while (System.Status != Status.Complete // our status is not complete
&& DateTime.Now < timeout // have not timed out
&& !_Worker.CancellationPending) // backgroundworker has not been canceled
{
//Thread.Yield();
//Thread.SpinWait(1);
//Thread.Sleep(1);
}
Run Code Online (Sandbox Code Playgroud)
当看着我的CPU%,yield()并spinwait()导致我的应用程序来拍摄高达50%,我的电脑上.随着Sleep(1)我的CPU%,6%,保持了下来.我被告知我应该选择Thread.Yield(),但是CPU%的高峰会让我感到困扰.什么是这样的最佳做法?
c# ×4
azure ×1
bash ×1
cmd ×1
comet ×1
css ×1
html ×1
http ×1
javascript ×1
kendo-grid ×1
kendo-ui ×1
linq ×1
moq ×1
nunit ×1
powershell ×1
requirejs ×1
sleep ×1
typescript ×1
websocket ×1
yield ×1