Angular AoT编译器认为我不在时使用lambda

时间:2019-11-15 18:27:22

标签: angular angular-compiler

我正在尝试使用@auth0/angular-jwt库来管理我的JWT,并且正在尝试完全按照他们在the docs中所说的去做:

export function jwtOptionsFactory(identityTokenProvider: IdentityTokenProvider) {
    return {
        tokenGetter: () => {
            return identityTokenProvider.getToken();
        }
    };
}

@NgModule({
    imports: [
        CommonModule,
        JwtModule.forRoot({
            jwtOptionsProvider: {
                provide: JWT_OPTIONS,
                useFactory: jwtOptionsFactory,
                deps: [IdentityTokenProvider]
            }
        })
    ]
})
export class AuthModule { }

但是当我尝试在我的库中构建它时,我得到了:

Metadata collected contains an error that will be reported at runtime: Lambda not supported. {"__symbolic":"error","message":"Lambda not supported","line":16,"character":21}

因此,我将tokenGetter的分配更改为:

export function jwtOptionsFactory(identityTokenProvider: IdentityTokenProvider) {
    return {
        tokenGetter: function () { // no more lambda!
            return identityTokenProvider.getToken();
        }
    };
}

但是当我构建时, still 会得到同样的错误,以为我有一个lambda!我很困惑,这里根本没有lambda了,对吗?我可以使它正常工作的唯一方法是这样做:

export function jwtOptionsFactory(identityTokenProvider: IdentityTokenProvider) {
    function tokenGetter() {
        return identityTokenProvider.getToken();
    }

    return {
        tokenGetter: tokenGetter
    };
}

我在这里完全丢失了一些东西吗?还是编译器有问题?

0 个答案:

没有答案