草庐IT

【TypeScript】TS中type和interface在类型声明时的区别

全部标签

javascript - eval 和 setTimeout 执行字符串代码的区别

我知道eval和setTimeout都可以接受字符串作为(1st)参数,而且我知道我最好不要使用它。我只是好奇为什么会有区别:!function(){varfoo=123;eval("alert(foo)");}();!function(){varfoo=123;setTimeout("alert(foo)",0);}();第一个可以,第二个会报错:fooisnotdefined他们是如何在幕后执行的? 最佳答案 参见referenceofsetTimeoutonMDN.Stringliteralsareevaluatedinthe

javascript - 不带导出的 TypeScript 声明的异步加载

我有许多jQuery插件,我想在TypeScript中使用AMD模式加载它们。例如,我可能有这样的结构:/lib/jquery.myplugin.js/app.ts该插件只是扩展了jQuery。它不提供新的顶级函数或变量。一个例子可能是://jquery.myplugin.jsjQuery.fn.myExample=function(){...}相应的jquery.myplugin.d.ts文件如下所示:interfaceJQuery{myExample();}所以现在在app.ts中我可以调用类似$('#my-element').myExample()的东西.请注意,这假设我已经加载

javascript - 使用 Json 向 Google map 添加标记 |应用程序接口(interface)

我正在尝试使用来自Json响应的数据在谷歌地图上绘制标记。我一整天都在StackOverflow中搜索答案,但没有找到适合我的解决方案。我猜这与我提取纬度和经度的方式有关,但我无法确定。下面是我的代码和Json,Json来自API。我的代码哪里出错了?脚本functioninitialize(){varmyOptions={zoom:4,center:newgoogle.maps.LatLng(34.397,150.644),mapTypeId:google.maps.MapTypeId.ROADMAP};map=newgoogle.maps.Map(document.getEleme

JavaScript:意外的类型结果

我有一个数组迭代器函数:functionapplyCall(arr,fn){fn.call(arr[0],0,arr[0]);}和一些代码vararr1=['blah'];applyCall(arr1,function(i,val){alert(typeofthis);//objectWHY??alert(typeofval);//stringalert(typeof(this===val))//alertsfalse,expectingtrue});为什么typeofthis在内联函数object而不是string中?jsfiddlehere 最佳答案

javascript - 引用整个目录 typescript

我想知道是否可以在typescript文件中引用整个目录,而不是一次只引用一个文件。我想要的是这样的:///但我最终得到的是/////////有谁知道如何正确地做到这一点?当我尝试放入目录路径时,VisualStudio告诉我该文件不存在,但它没有编译我的Typescript。谢谢! 最佳答案 这不是直接支持的。如果您有兴趣以这种方式构建文件,我建议您使用一个中间文件来引用,该文件又引用所有其他文件;编写脚本来更新该文件会非常容易。 关于javascript-引用整个目录typescri

javascript - 如何检查是否支持 javascript 类型的数组?

想用javascript测试如果浏览器支持类型化数组http://caniuse.com/#feat=typedarrays我试过了,但似乎不是好方法,因为有些浏览器只提供部分支持..:if(window.ArrayBuffer){alert('typedarraysupported')} 最佳答案 似乎有些浏览器(IE10)不支持Uint8ClampedArray,如果这是您打算使用的功能,您可以检查一下if('Uint8ClampedArray'inwindow){...如果检查返回false,则不支持类型化数组和/或限定数组。

javascript - 与 Kleen 正则表达式的区别

刚开始欣赏正则表达式,我正在regexone.com上练习我的问题给出了关于kleene"*"的解释。我自己想出了一个答案”[a-c]*但是解决方法是:aa+b*c+ora*b*c*两者在行为上有什么区别吗?特别是如果我将它与javascript一起使用?抱歉我的英语不好。 最佳答案 问题定义不充分,因为没有负面例子。例如,如果他们在医学院问你“截肢设备的名称是什么”,“汽车”在技术上是正确的,但可能不是他们想听到的(因为许多车祸最终都是与四肢被切断的人)。但如果问题是“医疗专业人员在手术期间进行截肢手术时使用的仪器名称是什么”,答

javascript - JS中有多少种数据类型,它们是什么?

我开始读一本书,《JavascriptforKids》。作者在其中声明了三种数据类型:数字字符串bool值然而,根据W3Schools,有四个:数字字符串数组对象我想知道哪个是正确的。 最佳答案 您可以使用typeof运算符对其进行测试:typeof运算符在放置在任何单个操作数之前时为您提供数据类型的名称。因此,尝试将typeof与任何操作数变量一起使用:它将给出以下数据类型名称之一:字符串人数bool值对象未定义因此,这些是Javascript中的五种数据类型。varval1="NewWorld";//returnsStringv

javascript - 在 grunt 上运行 Karma 时出现警告 'The API interface has changed'

从grunt任务运行karma时,我收到以下警告:Running"karma:unit"(karma)taskWarning:Theapiinterfacehaschanged.Pleaseuseserver=newServer(config,[done])server.start()instead.Use--forcetocontinue.Abortedduetowarnings.我已经使用我的配置测试了运行karma,都使用“运行”和“启动”karma命令,它们似乎工作正常。使用grunt--force可以完成任务,但完成时会出现警告。这是我目前使用的版本:karma0.13.0咕

javascript - 使用 Chutzpah 运行 QUnit (TypeScript) 测试给出 "Called start() outside of a test context while already started"

我有一个相当简单的重现,结果我不明白。确保安装了Chutpah测试适配器4.0.3。使用VisualStudio2013执行以下步骤:创建一个新的.NET4.5.1类库项目;添加NuGet包qunit.TypeScript.DefinitelyTyped0.1.7;将TypeScript文件file1.ts添加到项目中,内容如下:///QUnit.test("QUnitisworking",assert=>assert.ok(true));在该文件内右键单击并从上下文菜单中选择“运行JS测试”。我可以确认file1.js是按预期生成的。结果是没有运行任何测试,测试资源管理器没有显示测试