草庐IT

学习typeScript(weakMap,weakSet,set,map)

全部标签

javascript - TypeScript 不提供函数名称

我有一些typescript代码,我正在做一些元编程,我需要能够访问instance.func.name,但是TypeScript在编译的JS中省略了函数名称。typescript:classClassName{//...func():ReturnType{//...}}编译的JavaScript://...ClassName.prototype.func=function(){//...};所需的JavaScript:ClassName.prototype.func=functionfunc(){//...^^^^};是否有我缺少的编译器选项,或者我可以在TypeScript中使用的

javascript - ES6 Set 允许重复数组/对象

请看下面的脚本。我正在使用Chrome对其进行测试。/*declareanewset*/varitems=newSet()/*addanarraybydeclaringasarraytype*/vararr=[1,2,3,4];items.add(arr);/*printitems*/console.log(items);//Set{[1,2,3,4]}/*addanarraydirectlyasargument*/items.add([5,6,7,8]);/*printitems*/console.log(items);//Set{[1,2,3,4],[5,6,7,8]}/*prin

javascript - TypeScript:异步生成器

我想要一个这样的函数:exportasyncfunction*iterateDir(dir:string){letlist=awaitfs.readdir(dir);//fs-promiseimplementationofreaddirfor(letfileoflist){yieldfile;}}我会这样使用:for(letfileiniterateDir(dir)){processFile(file);}这行不通,因为一个函数不能既是异步函数又是生成器。我将如何构建代码来实现相同的目的?如果我将awaitfs.readdir更改为回调,我假设外部for..of循环不会等待。如果我去掉

javascript - 检测点击是否在 react 组件内部或不在 typescript 中

我大致有以下几点:componentDidMount(){document.querySelector('body')!.addEventListener('click',this.click);}click=(e:Event)=>{if(this.state.toggled){if(!ReactDom.findDOMNode(this.someRef).contains(e.target)){this.setState({toggled:false});}}};render(){return({this.someRef=e;}}/>)}此代码正确检测用户是在CustomElement

javascript - Visual Studio 2017 不编译 typescript

我最近更新到VS2017,我使用的解决方案曾经在VS2015中完美运行。我在工具>文本编辑器>TS/JS>项目中启用了“保存时编译”功能,我正在确保我使用了正确的“代码生成”选项,但VS不会编译任何typescript文件。js输出文件已经存在,它是由VS2015生成的,当我保存ts文件时,底部栏显示“Output(s)generatedsuccessfully”消息,但js文件没有变化。请注意,该项目受源代码控制,但ts和js文件都已checkout以供编辑。我在网上看到类似的问题已通过最新的VS更新得到解决,我确信我的VS版本是最新的。有谁知道这是怎么回事吗?

javascript - 我想实现一个学习 SICP 的方案解释器

我正在看书StructureandInterpretationofComputerPrograms,我想逐渐编写一个方案解释器。你知道最容易阅读(和简短)的方案的实现吗?我将用C编写JavaScript。 最佳答案 SICP本身有几个部分详细介绍了如何构建元循环解释器,但我建议您阅读以下两本书以获得有关Scheme解释器的更好资源:ProgrammingLanguages:ApplicationandInterpretation和EssentialsofProgrammingLanguages.它们既易于阅读,又能逐步指导您构建解释

小程序map拖动地图显示地图中心标记点及经纬度方法

最近做毕设,需要获取地点坐标,有了地图地图,想想怎么来简单点。就上网搜了搜(官方有提供地图选点返回经纬度的,但是感觉手指操作不太精准,就想着换一种)然后自己写了个demo(代码再后面)大体思路是在map中心放个很小的圈圈定位用(map中flex垂直水平居中不太行,用了position:absolute的老方法)然后使用MapContext.getCenterLocation获取当前地图中心的经纬度再使用MapContext.addMarkers添加marker(callout中显示坐标)这样一拖动地图就能显示地图中心标记点及经纬度顽皮一下(addMarkers里忘写clear:true的后果哈

javascript - 如何在新版 Google map 上设置默认缩放级别?

我阅读了很多问题、map帮助、产品论坛等等......但我从来没有找到这个“不可能”的答案。我简直不敢相信。那么如何在嵌入的Googlemap上设置默认缩放级别?现在我的map有这个链接:https://mapsengine.google.com/map/edit?mid=zV4QqQ0y5KZs.kFj05lIIpS5s我在URL中尝试了z=10参数,它不起作用。是否有任何其他参数,或者可能有一些JavaScript技巧来设置缩放级别?还是其他一些HTML参数,例如data-zoom或其他...? 最佳答案 看来&z=nn参数现在

javascript - 单击其他时更改 Google map 标记图标

我创建了一个Googlemap多位置页面,使用高级自定义字段Googlemap字段。我已经设法使标记图标在单击时发生变化,但我希望在单击其他图标时将其更改回来。代码示例:for(i=0;i更好地查看这里的工作代码:http://jsfiddle.net/gargiguy/s8vgxp3g 最佳答案 邓肯说的是:您要做的是将所有标记添加到一个数组中。在您的点击事件处理程序中,遍历该数组,更新每个标记的图标。然后最后只为被点击的标记设置图标。google.maps.event.addListener(marker,'click',(fu

javascript - 为什么从 angularjs.TypeScript.DefinitelyTyped 中删除全局 'angular' 变量?

从angularjs.TypeScript.DefinitelyTyped升级2.1.6到3.1.2删除了我用于模块声明文件的静态angular变量的可访问性。下面出现一个错误,表示符号angular无法正确解析。angular.module("someModule")....Resharper提供了从外部模块导入变量的选项,但这不起作用。在早期版本中公开全局angular变量是否是一个错误?它是否不打算按照我的项目使用它的方式使用? 最佳答案 这是Resharper9.0的一个错误。该修复计划用于9.1版本。您现在可以执行以下两项