我收到了错误
错误TS4025:导出变量'UserApiClientModule'已经或正在使用私有名称'UserApiClient'。
在以下代码中:
export var UserApiClientModule = {
fromConfiguration: (configuration: Configuration) => {
@NgModule({
providers: [
{
provide: BASE_PATH,
useValue: basePath
},
{
provide: Configuration,
useValue: configuration
},
RegistrationApi,
AuthApi,
AccountApi,
ContactsApi,
ContactOrgsApi
],
imports: [
CommonModule,
HttpModule
]
})
class UserApiClient { }
return UserApiClient;
}
}
我怀疑解决方案是以某种方式导出UserApiClient类型,但我不知道如何执行此操作,因为它是在函数中声明的。
答案 0 :(得分:1)
这一点是:
Typescript试图猜测所有公共部分的返回类型是什么。不仅仅是猜测,而是真正宣布
UserApiClient
作为fromConfiguration
电话的返回类型的一部分
因为我们返回了一些未导出的东西,它是内部的......有一个问题。但我们可以很容易地返回其他内容,例如一些常见的界面......或者至少是神奇的 any
// change this
export var UserApiClientModule = {
fromConfiguration: (configuration: Configuration) => {
@NgModule({
...
// to that
export var UserApiClientModule = { // below is the change
fromConfiguration: (configuration: Configuration) : any => {
@NgModule({
...
我更愿意声明一些常见的接口IHaveDynamicData
...实际上在这里显示的类似情况How can I use/create dynamic template to compile dynamic Component with Angular 2.0?
答案 1 :(得分:0)
我不熟悉Angular 2.我是从TypeScript的角度回答你的:
问题很简单:您正在尝试从函数返回私有类。这不是正确的做法。这不是声明和导出模块和类的正确方法。
每个文件都是一个模块,您不需要明确定义它。不要使用' Module'来修改变量名称,因为变量不是模块。
在类定义之前使用export
关键字,并从任何函数中取出它。类应该直接位于模块(文件)上。
export fromConfiguration: (configuration: Configuration) => {
@NgModule({
providers: [
{
provide: BASE_PATH,
useValue: basePath
},
{
provide: Configuration,
useValue: configuration
},
RegistrationApi,
AuthApi,
AccountApi,
ContactsApi,
ContactOrgsApi
],
imports: [
CommonModule,
HttpModule
]
})
}
export class UserApiClient { }