我有一个简单的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 { }
但是当我尝试导出FoundationModule
的{{1}}中的public-api.ts
时,出现以下错误-
ng-packagr
如何在Angular模块中打包单个类?
答案 0 :(得分: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;
}
正如第一个答案所说,类或接口不在模块上。
答案 1 :(得分:0)
问题出在您的模块定义中。您应该将Params
直接导入需要该类的每个组件/服务中。
public-api.ts
import { Params } from '../params/params';
...
newVariable: Params = {
language: 'my language',
...
}