小编Nis*_*eph的帖子

TypeScript,如何将类方法事件处理程序上下文保存到"this"实例

我在TypeScript中遇到了类的问题.每次我必须要听HTML元素事件时,我需要使用Function.bind()将它连接到当前实例.

class VideoAdProgressTracker extends EventDispatcher
{
    private _video:HTMLVideoElement;

    constructor(video:HTMLVideoElement)
    {
        super();
        this._video = video;
        this._video.addEventListener("timeupdate", this.handleTimeUpdateEvent);
    }

    private handleTimeUpdateEvent(event)
    {
        // Something
    }
}
Run Code Online (Sandbox Code Playgroud)

每次当你有5-10个事件时,我不必保存绑定的匿名函数,它将变得一团糟.我想让它受到约束.

有什么建议?

methods events class listener typescript

17
推荐指数
1
解决办法
5142
查看次数

Google Cloud Functions,Node JS 8.9.x(LTS)和KOA库

如何在Cloud Functions中使用Koa库,快速替换?

我知道KOA使用了所有优秀的ES2017,并且更多地使用了Async的JavaScript.

或者根本不需要使用云功能,因为Firebase系统在结束前一个功能之前不会向同一个云功能发送多个呼叫?

我不清楚.

它知道需要Node 8.x并且我知道NodeJs 8.9.x,现在已经是LTS了.

node.js firebase koa google-cloud-functions

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

Chrome 64 Mobile Android 未预加载且未自动播放静音视频

我们遇到的Chrome 64视频元素问题,它不加载,并没有自动播放,虽然我们使用的视频属性preload="auto"mutedHTML元素。

视频开始加载并暂停,经过研究,我们发现它永远不会开始播放,就像浏览器阻止它播放一样。

我们的视频没有声音,根本没有声道,仍然没有自动播放。

Chrome 63 运行良好,并且具有 64 停止自动播放功能的相同设备。

我们做了谷歌浏览器在发行说明中写的所有事情,但我们认为还有一个我们不知道的问题。

android google-chrome autoplay html5-video

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

在运行时向 Flutter 应用添加动态资源

我有 Flutter 应用程序,需要加载动态资源和内容,我想保存这些内容以供以后使用。我知道我可以在应用程序内的文件夹“assets/”中构建时拥有的资产。

我想使用 ZIP 文件下载内容并将其解压缩到应用程序本地文件夹,这样它们就不会在下一次应用程序更新中删除。

Flutter 允许我在运行时向哪些文件夹添加资源?

caching flutter

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

具有多个呼叫签名的TypeScript接口

我在TypeScript 2.2中看到了通过定义的接口调用签名“重载”功能的选项,我花了很多时间来了解如何使用它。

因此,在对其进行处理并“破解”之后,我认为将其发布在此处是值得的。

我开始的问题是,例如:

interface Func1 {
    (num1: number, num2: number): number;
    (str1: number, str2: string): string;
}

function F1(num1: number, num2: number): number {
    return num1 + num2;
}

const f1: Func1 = F1;
console.log(f1(1, 2));
Run Code Online (Sandbox Code Playgroud)

但编译器未通过它,因为Func1无法接受该F1函数。

我想超载,但我不知道该怎么办。

请参阅下面的答案。

overloading interface function typescript

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

如何在 Google Chrome Devtools 中访问和搜索 debugger:///VM* 文件中的代码

我想调试不是通过文件加载的脚本,这意味着它们是eval通过 iOS/Android 推送到浏览器的本机代码加载的。

当我在 DevTools 控制台中编写时,(function() {debugger}())浏览器会创建类似的假文件debugger:///VM132,您可以在调试器断点中看到它。

我通常有很多“文件”代码,但我无法访问它们,也无法在开发工具中的任何位置debugger:///VM***看到脚本列表。debugger:///VM来源面板也没有显示任何这些。

此外,我使用 DevTools 搜索CMD+option+F,而不是在debugger:///VM文件内部搜索。

我怎样才能找到这些来源?

javascript javascript-debugger google-chrome-devtools

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

具有自身类类型的TypeScript克隆自身实例

我想克隆当前的类实例,并在clone()一个多态类的实例内创建,如下所示:

class State
{
    public clone():State
    {
        const state = new State();
        this._copyData(state);
        return state;
    }

    protected _copyData(target:this):void
    {
    }
}

class StateExtends extends State
{
    public clone():StateExtends
    {
        const state = new StateExtends();
        return state;
    }

    protected _copyData(target:this):void
    {
        super._copyData(target);
    }
}
Run Code Online (Sandbox Code Playgroud)

覆盖State类时,我希望clone()签名在所有类层次结构中保持不变。我可以做这样的事情:

class State
{
    public clone():this
    {
        const state = new this();
        this._copyData(state);
        return state;
    }

    protected _copyData(target:this):void
    {
    }
}

class StateExtends extends State
{
    protected _copyData(target:this):void
    {
        super._copyData(target);
    }
}
Run Code Online (Sandbox Code Playgroud)

但这是行不通的。 …

polymorphism clone typescript

3
推荐指数
1
解决办法
424
查看次数

Chrome 56 移动版 addEventListener“点击”不起作用

我遇到一个问题,click链接元素(A 标签)或任何其他 DOM 元素上的事件未调用处理程序/回调函数。

我得到层次结构中的哪个父级没有得到此事件并不重要。

不存在 Event.stopImmediatePropagation 或 Event.stopPropagation。

mobile events google-chrome click touch

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

Intellij Idea 和 WebStorm NPM 版本最新及更多

我多次遇到我的节点包不是最新的,我想保持它们更新而不是在上面浪费太多时间。

因此,我想使用我最喜欢的 JetBrains IDE 和其他工具检查所有选项,以跟踪这些包并在需要时保留最新版本。

intellij-idea updates node.js npm

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