小编dan*_*cek的帖子

为什么Event.target不是Typescript中的元素?

我只想用我的KeyboardEvent来做这件事

var tag = evt.target.tagName.toLowerCase();
Run Code Online (Sandbox Code Playgroud)

虽然Event.target的类型为EventTarget,但它不会从Element继承.所以我必须这样投:

var tag = (<Element>evt.target).tagName.toLowerCase();
Run Code Online (Sandbox Code Playgroud)

这可能是因为有些浏览器没有遵循标准,对吧?TypeScript中与浏览器无关的正确实现是什么?

PS:我正在使用jQuery来捕获KeyboardEvent.

typescript

87
推荐指数
5
解决办法
5万
查看次数

查找整数的位数

找到正整数位数的最佳方法是什么?

我找到了这3种基本方法:

你可以在大多数语言中计算log10(x)= ln(x)/ ln(10).

首先我认为字符串方法是最脏的,但我想的越多,我认为这是最快的方法.或者是吗?

algorithm counting digits

56
推荐指数
5
解决办法
7万
查看次数

Visual Studio:如何从现有的GitHub存储库创建项目?

我来自Eclipse背景,我显然错过了一些东西.

现有一个带有JS代码的GitHub项目,我想开始为它添加TypeScript特性,一次一种类型.

我已经按照本教程将项目从GitHub克隆到我的"本地git存储库".现在,Team Explorer窗口将其显示为本地存储库,我可以提交更改等,但它不是项目,我不知道如何将其作为项目打开(我想将其作为TypeScript项目打开).

我从Eclipse习惯的工作流程只是新建 - >其他 - > SVN - > SVN的Checkout项目,New Project Wizard自动跟随.

如何从GitHub克隆现有的JS项目并使其成为TypeScrip项目,同时保留现有的文件夹结构?

编辑:我使用的是Visual Studio Express,我只限于原生的Git扩展.

github visual-studio

45
推荐指数
1
解决办法
5万
查看次数

在TypeScript中实例化新的HTMLElement

我试图在TypeScript中实例化新的HTMLDivElement

var elem = new HTMLDivElement();
Run Code Online (Sandbox Code Playgroud)

但浏览器抛出

Uncaught TypeError: Illegal constructor.
Run Code Online (Sandbox Code Playgroud)

解决方法似乎是使用

var elem = document.createElement('div');
Run Code Online (Sandbox Code Playgroud)

但由于种种原因,我觉得这个次优.

为什么我不能在lib.d.ts中有一个新的关键字时直接实例化DOM元素?

declare var HTMLDivElement: {
    prototype: HTMLDivElement;
    new (): HTMLDivElement;
}
Run Code Online (Sandbox Code Playgroud)

typescript

42
推荐指数
3
解决办法
3万
查看次数

基于字符串文字类型参数的变量返回类型

我可以根据TypeScript 1.8或2.0中字符串文字类型参数的值来设置变量返回类型吗?

type Fruit = "apple" | "orange" 
function doSomething(foo : Fruit) : string | string[] {
    if (foo == "apple") return "hello";
    else return ["hello","world"];
}

var test : string[] = doSomething("orange");
Run Code Online (Sandbox Code Playgroud)

错误:TS2322:输入'string | string []'不能赋值为'string []'.

typescript

18
推荐指数
1
解决办法
5244
查看次数

在TypeScript中键入具有联合类型的数组?

我只是想知道是否可以键入具有联合类型的数组,因此一个数组可以包含苹果和橙子,但没有别的.

就像是

var arr : (Apple|Orange)[] = [];

arr.push(apple); //ok
arr.push(orange); //ok
arr.push(1); //error
arr.push("abc"); // error
Run Code Online (Sandbox Code Playgroud)

针说上面的例子不起作用所以这可能是不可能的,或者我错过了什么?

typescript typescript1.4

14
推荐指数
2
解决办法
6980
查看次数

关于TypeScript代码的JSlint - 它还能教我编写更好的代码吗?

可以在TypeScript生成的代码上使用JSlint仍然教我编写更好的代码吗?如果是,你可以提供一两个例子吗?

谢谢

jslint typescript

13
推荐指数
1
解决办法
5622
查看次数

在浏览器中调试自定义DOM事件

是否可以在浏览器中查看(调试)从DOM元素触发的自定义事件?

假设我想看看Bootstrap Collapse的哪个特定元素触发show.bs.collapse事件,我可以以某种方式在Chrome露水工具中看到它吗?

dom dom-events google-chrome-devtools

13
推荐指数
1
解决办法
2530
查看次数

当Firefox中的鼠标嵌入iframe时,防止父页面滚动

...不限制iframe内的滚动或需要专门命名/标记所有可滚动元素.

想象一下嵌入在父页面中的谷歌地图小部件.放大窗口小部件时,显然不希望父页面滚动.

我以为我前一个问题的答案解决了这个问题:

在iframe内滚动时,身体对那里发生的事情一无所知.但是当iframe卷轴到达底部或顶部时,它会滚动到正文.

取消从iframe传播的事件.

但该解决方案在Firefox中不起作用,因为Firefox不会 - 按设计 - 将iframe捕获的事件传播到父页面,但奇怪的是它会滚动父页面.在这里看到jsfiddle.

$('body').bind('mousewheel DOMMouseScroll', onWheel);

function onWheel (e){
    if (e.target === iframe)
        e.preventDefault();
    console.log(e);
}
Run Code Online (Sandbox Code Playgroud)

那么,当用户在Firefox中缩放嵌入式iframe中的内容时,如何防止页面滚动?

javascript iframe firefox javascript-events mousewheel

11
推荐指数
1
解决办法
6004
查看次数

TypeScript中的类型化数组 - Array <Foo>和Foo []之间的区别是什么?

在TypeScript中我有一个类 Foo

class Foo {}
Run Code Online (Sandbox Code Playgroud)

我想要Foo的实例数组.有什么区别

var foos : Array<Foo>;
Run Code Online (Sandbox Code Playgroud)

var foos : Foo[];
Run Code Online (Sandbox Code Playgroud)

在我看来,两者都定义给定类型的实例数组,是否有任何区别?

编辑:这些结构的名称是什么?我该如何正确引用它们?

arrays syntax typescript

10
推荐指数
1
解决办法
2311
查看次数