gpt4 book ai didi

javascript - Angular 2.0.2 - 静态解析符号值时遇到错误

转载 作者:数据小太阳 更新时间:2023-10-29 05:25:05 24 4
gpt4 key购买 nike

在运行 i18n 时,我还遇到了著名的错误“静态解析符号值时出错。不支持函数调用。考虑将函数或 lambda 替换为对导出函数的引用,解析符号”。我已经做了很多研究,而且我没有使用 lambda 函数。当我将以下导入语句添加到我的基本模块时会发生这种情况:

export const mapsConfig = new LazyMapsAPILoaderConfig();
mapsConfig.apiKey = 'xyz';
// ... below is in import list
BingMapsModule.forRoot(config),

我正在使用 ng2-bingmaps,我也参与其中:https://github.com/youjustgo/ng2-bingmaps

奇怪的是,ng2-bingmaps 中的 JS 代码是什么并不重要。如果我删除所有 .js 文件,我仍然会遇到同样的错误!所以,它一定是 ng2-bingmaps core.d.ts 中的内容,如下所示:

/**
* ng2-bingmaps - Angular 2 components for Bing Maps
* @version v0.2.0
* @link https://github.com/youjustgo/ng2-bingmaps
* @license MIT
*/
import { ModuleWithProviders } from '@angular/core';
import { LazyMapsAPILoaderConfig } from './services/maps-api-loader/lazy-maps-api-loader';
export * from './directives';
export * from './services';
export declare const NG2_BINGMAPS_PROVIDERS: any[];
/**
* The ng2-bing-maps core module. Contains all Directives/Services/Pipes
* of the core module. Please use `BingMapsModule.forRoot(config)` in your app module.
*
* @experimental
*/
export declare class BingMapsModule {
static forRoot(config: LazyMapsAPILoaderConfig): ModuleWithProviders;
}

当我只导入 BingMapsModule(没有 forRoot)时,它起作用了。

我已经检查了 ng2-bingmaps 中的所有提供者,但没有一个在装饰器中有 lambda 函数。

我的基本模块定义:

@NgModule({
imports: [
// browser module, required to load in browser
BrowserModule,
// routing
RouterModule.forRoot(routes),
// angular forms
FormsModule,
// ng2-bingmaps
BingMapsModule.forRoot(mapsConfig),
// ng-bootstrap
NgbModule,
// http
HttpModule,

// Angulartics2
// Angulartics2Module.forRoot(),
// our custom modules for certain parts of our app
CreateBookingModule,
CommonModule
],
declarations: [
// all our components
],
bootstrap: [ ClientApp ],
providers: [
// our services
]
})

最佳答案

"Error encountered resolving symbol values statically. Function calls are not supported. Consider replacing the function or lambda with a reference to an exported function, resolving symbol "

虽然我没见过这个错误,但听起来好像是指这个

export const mapsConfig = new LazyMapsAPILoaderConfig();

如果 mapsConfig 与您正在使用它的模块位于同一个文件中,则不需要导出它。我想删除 export 应该可以解决错误。

另一件事,您可能不需要创建配置实例。由于 TypeScript 的结构类型系统,您可以只使用对象字面量

BingMapsModule.forRoot({
apiKey: 'xyz'
})

通常对于“配置”对象,无论如何您都会看到它的使用方式。

关于javascript - Angular 2.0.2 - 静态解析符号值时遇到错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39989083/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com