Наследование Angular 2 и Typescript

299
20 февраля 2018, 08:34

Есть два компонента, в которых существуют две идентичные функции. Исходя из принципов ООП, логичнее всего поместить эти функции в отдельный класс, а затем компонентам наследоваться от этого класса.

Вопрос в том, как это сделать так, чтоб потом другие люди восприняли этот код нормально. То есть, как оформить и в какую папку поместить новый класс и, в целом, используется ли подобный подход относительно Angular`a?

Answer 1

Пример из статьи: https://scotch.io/tutorials/component-inheritance-in-angular-2

можно сделать папку abstract для абстрактных компонентов и потор разделить по фича папкам

еще конечно оф. документация: https://angular.io/guide/styleguide

import { Component } from '@angular/core';
import { SimplePaginationComponent } from './simple-pagination.component';
@Component({
  selector: 'my-pagination',
  template: `
    <a (click)="previousPage()" [class.disabled]="!hasPrevious()" 
      href="javascript:void(0)">
      ««
    </a> 
    <span>{{ page }} / {{ pageCount }}</span>
    <a (click)="nextPage()" [class.disabled]="!hasNext()"
      href="javascript:void(0)" >
      »»
    </a>
  `
})
export class MyPaginationComponent extends SimplePaginationComponent {
}
Answer 2

Дополню ответ предыдущего автора - можно так же сделать интерфейс и указать какие свойства и методы необходимо реализовать (допустим может различаться реализацию функции MySomeFunction() в некоторых компонентах).
Допустим вот как тут

Это может пригодится, если есть несколько компонентов, которые выполняют один и тот же метод, но реализация может отличаться. Ну а если необходимо именно сохранить реализацию метода от класса-родителя, тогда наследование с помощью extends.

READ ALSO
Как запускать popup fancybox по прямой ссылке?

Как запускать popup fancybox по прямой ссылке?

У меня есть popup окно с id="hidden-content"Мне нужно чтобы это окно открывалось при переходе по ссылке http://мойсайт/#hidden-content

259
Таймер обратного отсчета с временем из БД и занесением данных в БД каждый час

Таймер обратного отсчета с временем из БД и занесением данных в БД каждый час

Здравствуйте делаю счетчик обратного отсчета , суть счетчика заключается в том чтобы отсчитывать ровно 1 час и выполнять определенное действиевремя...

233
Node JS, return из модуля

Node JS, return из модуля

Добрый деньЯ новичок в Node , сильно не критикуйте

228