小编ale*_*kop的帖子

TypeScript:不能对类型缺少调用或构造签名的表达式使用"new"

我有一个函数,用给定的构造函数实例化一个对象,传递任何参数.

function instantiate(ctor:Function):any {
    switch (arguments.length) {
        case 1:
            return new ctor();
        case 2:
            return new ctor(arguments[1]);
        case 3:
            return new ctor(arguments[1], arguments[2]);
        ...
        default:
            throw new Error('"instantiate" called with too many arguments.');
    }
}
Run Code Online (Sandbox Code Playgroud)

它是这样使用的:

export class Thing {
    constructor() { ... }
}

var thing = instantiate(Thing);
Run Code Online (Sandbox Code Playgroud)

这有效,但编译器抱怨每个new ctor实例,说Cannot use 'new' with an expression whose type lacks a call or construct signature..应该ctor有什么类型?

typescript

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

全局安装时找不到模块requirejs

我已在requirejs全球安装,但node表示无法找到它.

# node tools/mapconv.js

module.js:340
    throw err;
          ^
Error: Cannot find module 'requirejs'
    ...

# cat mapconv.js
var requirejs = require('requirejs');
...
Run Code Online (Sandbox Code Playgroud)

该模块肯定安装:

# npm ls -g | grep requirejs
??? requirejs@2.1.6
Run Code Online (Sandbox Code Playgroud)

我已经清除了NPM缓存,但没有变化.有没有其他人遇到这个?

node.js requirejs

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

for Coffee循环使用范围

Noob问题.我正在尝试用范围编写for循环.例如,这是我想用JavaScript生成的:

var i, a, j, b, len = arr.length;
for (i = 0; i < len - 1; i++) {
    a = arr[i];
    for (j = i + 1; i < len; j++) {
        b = arr[j];
        doSomething(a, b);
    }
}
Run Code Online (Sandbox Code Playgroud)

到目前为止我最接近的是以下,但是

  1. 它会生成不必要且昂贵的切片调用
  2. 访问内部循环内的数组长度

CoffeeScript的:

for a, i in a[0...a.length-1]
    for b, j in a[i+1...a.length]
        doSomething a, b
Run Code Online (Sandbox Code Playgroud)

生成的代码:

var a, b, i, j, _i, _j, _len, _len1, _ref, _ref1;

_ref = a.slice(0, a.length - 1);
for (i = _i …
Run Code Online (Sandbox Code Playgroud)

coffeescript

7
推荐指数
1
解决办法
7308
查看次数

WebView:IFRAME中的文本框停止接受输入

的test.html:

<body>
  <iframe src="input.html"></iframe>
</body>
Run Code Online (Sandbox Code Playgroud)

input.html:

<input type="text" />
Run Code Online (Sandbox Code Playgroud)

点按文本框内部并尝试输入.一切正常.现在点击文本框外部,然后再次点击内部,或者隐藏并显示虚拟键盘.现在打字不再起作用了.

有没有人见过这个?有什么建议?

uiwebview ios7

6
推荐指数
1
解决办法
1344
查看次数

hg:将一些更改提交给另一个分支

branch-a当我发现一个应该在default分支中修复的无关错误时,我正在工作.所以,我想提交一些我的更改default,然后合并default到当前分支,并继续工作.

据我所知,Mercurial不允许直接提交到另一个分支,所以我必须先切换到默认分支.问题是,我不能简单地检查默认分支,因为其他更改会导致冲突.我能想到的一个工作流程是搁置,结帐默认,只取消与修复,提交,结帐分支-a,合并默认值相关的文件,最后取消搁置其余文件.有没有更简单的方法来实现这一目标?

mercurial

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

稍后解决承诺

我想构建一个 Promise,但将解决方案推迟到以后。下面的代码创建了一个承诺,但它立即得到解决。我如何控制承诺何时被评估?

var p = new Promise((resolve, reject) => {
        resolve(1);
    })
    .then((p1) => {
        console.log(p1 + 1);
    });
Run Code Online (Sandbox Code Playgroud)

更新:为了澄清,想要将承诺的声明与其执行分开的原因是then基于一些参数动态添加回调。

es6-promise

5
推荐指数
2
解决办法
2191
查看次数

Windows Phone 8上的FontAwesome

我无法在Windows Phone 8上显示FontAwesome图标.

  • 电话(HTC 8X):在开箱(http)上确定,但在QA服务器(https)上没有
  • Surface RT,Pro,桌面:两台服务器都可以

所有设备都使用IE10.两种环境(Dev和QA)都使用IIS7.似乎IE10手机在处理可下载字体方面与IE10平板电脑/台式机有所不同.

还有其他人经历过这个吗?

windows-phone font-awesome

4
推荐指数
1
解决办法
1815
查看次数

let函数如何保证值不会为空?

let函数保证块内的值不会为空,即使另一个线程在块运行时更改了原始值......听起来不错,但它是如何做到的呢?

var user: User?

user?.let { it ->
  // `user` can be null at this point, but not `it`.
}
Run Code Online (Sandbox Code Playgroud)

当该块运行时,编译器如何防止底层对象被释放?参考性强?关键部分?还有别的事吗?

kotlin

2
推荐指数
1
解决办法
722
查看次数