Как экспортировать функции из библиотеки в приложение, невозможно отправить через провайдера - PullRequest
0 голосов
/ 13 февраля 2020

Я пытаюсь экспортировать функцию из библиотеки angular в другое приложение, я пробовал, как я делаю сервисы, но получаю ошибку. что такое правильный путь?

вот моя функция: (библиотека)

export function monthDiff(dateFrom, dateTo) {
    dateFrom.setDate(1);
    dateTo.setDate(1);
    return dateTo.getMonth() - dateFrom.getMonth() +
        (12 * (dateTo.getFullYear() - dateFrom.getFullYear()));
}

если я импортирую как:

import {monthDiff}  from '../../service'

и настройка с провайдером, как:

providers: [monthDiff]

получаю ошибку вроде:

Type '(date?: any, dd?: any) => string' is not assignable to type 'Provider'.
  Type '(date?: any, dd?: any) => string' is missing the following properties from type 'any[]': pop, push, concat, join, and 25 more.

как ее решить?

1 Ответ

2 голосов
/ 13 февраля 2020

Таким образом, вы также можете сделать это, создать файл, который может иметь много функций, и экспортировать его в ваш компонент, где вы хотите использовать его функцию, как показано ниже

utils.ts


export default class Utils {
    static doSomething(val: string) { return val; }
    static monthDiff(dateFrom, dateTo) {
        dateFrom.setDate(1);
        dateTo.setDate(1);
      return dateTo.getMonth() - dateFrom.getMonth() +
        (12 * (dateTo.getFullYear() - dateFrom.getFullYear()));
    }
}

.component.ts

import { Component } from '@angular/core';
import Utils from './utils'


@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: [ './app.component.css' ]
})
export class AppComponent  {
  constructor(){
    let today = new Date();
    let form_date=new Date('2019-10-23')
    console.log(Utils.monthDiff(form_date,today))
  }
}

рабочая ссылка

https://stackblitz.com/edit/angular-zdett3

...