@Optional()basePath:使用AOT编译时,字符串解析成错误

时间:2017-04-04 13:32:43

标签: angular typescript

所以我有一个带有生成API(swagger-code-gen)的Angular(v4.0.1)应用程序。当我使用JIT编译器(prod和dev配置)构建它时,它完美地工作。 但是当我尝试使用AOT编译器编译它时,我在生成的swagger API中得到以下错误;

  

使用角度编译器开始编译。角度编译   完成,启动webpack捆绑。错误:无法解析所有参数   为ThisAwasomeGeneratedApi in   /Users/.../Documents/Development/ProjectAwesomeness/src/app/modals/api/ThisAwasomeGeneratedApi.ts:   ([object Object] ,?)。       at syntaxError(/ Users /.../ Documents /Development/ProjectAwesomeness/node_modules/@angular/compiler/bundles/compiler.umd.js:1513:34)

//生成api(swagger-codegen generate -i)

import {Http, Headers, RequestOptionsArgs, Response, URLSearchParams} from '@angular/http';
import {Injectable, Optional} from '@angular/core';
import {Observable} from 'rxjs/Observable';
import * as models from '../model/models';
import 'rxjs/Rx';

/* tslint:disable:no-unused-variable member-ordering */

'use strict';

@Injectable()
export class ThisAwasomeGeneratedApi {
    public basePath = 'http://localhost:8080/awasomeapi';
    public defaultHeaders : Headers = new Headers();

    constructor(protected http: Http, @Optional() basePath: string) {
        if (basePath) {
            this.basePath = basePath;
        }
    }  
 ..code omitted  
}

当我删除" @Optional()basePath:string" AOT一切正常。

如果@Optional装饰器无法找到它的依赖关系,则返回null。那么,当依赖项是可选的时,为什么不能构建呢?

有关可选装饰器的信息: https://angular.io/docs/ts/latest/api/core/index/Optional-decorator.html

0 个答案:

没有答案