0

我有一个简单的 TypeScript 类,我想将它与一个模块一起打包,并最终使用ng-packagr.

例如我的班级定义是 -

export class Params {
    language: string ;
    country: string ;
    variant:  string ;
    dateFormat:  string ;
    briefDateTimeFormat:  string ;
    decimalFormat:  string ;
}

例如我的模块定义是 -

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { Params } from '../params/params';
import { LoginService } from '../sso/login.service';

@NgModule({
  imports: [CommonModule],
  exports: [Params],
  providers: [LoginService]
  declarations: [Params, LoginService]
})
export class FoundationModule { }

但是当我尝试导出FoundationModulein public-api.tsof 时ng-packagr,出现以下错误 -

BUILD ERROR
: Unexpected value 'Params in .../params/params.ts' declared by the module 'FoundationModule' in '.../foundation.module.ts'. Please add a @Pipe/@Directive/@Component annotation.

如何在 Angular 模块中打包单个类?

4

2 回答 2

1

两种选择。

export class Params {
language: string;
country: string;
variant: string;
dateFormat: string;
briefDateTimeFormat: string;
decimalFormat: string;
constructor(obj: any) {
    this.language = obj && obj.language || null;
    this.country = obj && obj.country || null;
    this.variant = obj && obj.variant || null;
    this.dateFormat = obj && obj.dateFormat || null;
    this.briefDateTimeFormat = obj && obj.briefDateTimeFormat || null;
    this.decimalFormat = obj && obj.decimalFormat || null;
}

}

或者

export interface Params {
    language: string;
    country: string;
    variant: string;
    dateFormat: string;
    briefDateTimeFormat: string;
    decimalFormat: string;
}

正如第一个答案所说,类或接口不在模块上。

堆栈溢出参考

角度参考

于 2018-07-27T00:20:48.663 回答
0

问题出在您的模块定义中。您应该直接导入Params到需要该类的每个组件/服务中。

公共api.ts

import { Params } from '../params/params';

...
newVariable: Params = {
  language: 'my language',
  ...
}
于 2018-07-26T23:53:28.550 回答