如何将功能从库导出到应用程序,无法通过提供商发送

How to export functions from library to application, not able to send through provider

我正在尝试将函数从 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.

如何解决?

所以你也可以这样做创建一个可以有很多功能的文件并将其导出到你想要使用其功能的组件中,如下所示

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))
  }
}

工作link

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