Skip to content

Instantly share code, notes, and snippets.

@y-takagi
Last active August 10, 2020 02:39
Show Gist options
  • Save y-takagi/b806201cadd64bbe21b24a4ca448378e to your computer and use it in GitHub Desktop.
Save y-takagi/b806201cadd64bbe21b24a4ca448378e to your computer and use it in GitHub Desktop.
Implement extention method w/ typescript.

Implement extention method w/ typescript.

Array

// array.ext.ts

declare global {
  interface Array<T> {
    flatten(): Array<any>;
  }
}

Array.prototype.flatten = function (): Array<any> {
  return this.reduce((a, b) => a.concat(Array.isArray(b) ? b.flatten() : b), []);
};

Import array.ext.ts file at main.ts(Angular).

// main.ts

import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';

import { AppModule } from './app/app.module';
import './app/utils/array.ext';

platformBrowserDynamic()
  .bootstrapModule(AppModule)
  .catch(err => console.error(err));

Reference

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment