数组原型TypeScript

时间:2017-02-16 17:02:35

标签: javascript typescript

我已经创建了我自己的Array扩展,如下所示:

export interface Func<T, TResult> {
    (item: T): TResult;
}

declare global {
    interface Array<T> {
        where(predicate: Func<T, boolean>): Array<T>;
        single(predicate: Func<T, boolean>): T;
        first(predicate: Func<T, boolean>): T;
        take(predicate: Func<T, boolean>, count: number): Array<T>;
        countWhere(predicate: Func<T, boolean>): number;
        count(): number;
    }
}

Array.prototype.count = function <T>(): number {
    return this.length;
}

//others

在我的任何组件中,intellisense都将这些方法显示为扩展,但在调试时我得到了未定义的例如:

events: Event[];
var result = this.events.count();

我应该在哪里实现Array方法,以便可以从任何组件中看到它们?

1 个答案:

答案 0 :(得分:0)

以下是要检查的内容......

  1. 是否加载包含扩展名的文件
  2. 是否以正确的顺序(即在使用之前)加载
  3. 在网络浏览器中打开开发人员工具(通常为F12),然后选择“网络”标签。

    Example Network Tab (Stack Overflow)

    运行您的应用程序并查看加载的JavaScript文件。

    您可以检查包含Array扩展名的文件是否已加载 - 并且该文件是在依赖于这些扩展名的文件之前加载的。