Ошибка компиляции веб-пакета Jhipster при проверке значения массива - PullRequest
0 голосов
/ 21 февраля 2020

Я использую Jhipster с Angular. У меня есть метод, который пытается проверить, если пользователь в качестве администратора.

import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';

import { IPost } from 'app/shared/model/post.model';
import { AccountService } from 'app/core/auth/account.service';
import { Subscription } from 'rxjs';
import { Account } from 'app/core/user/account.model';

@Component({
  selector: 'jhi-post-detail',
  templateUrl: './post-detail.component.html'
})
export class PostDetailComponent implements OnInit {
  post: IPost | null = null;
  authSubscription!: Subscription;
  account: Account | null = null;

  constructor(protected activatedRoute: ActivatedRoute, private accountService: AccountService) { }

  ngOnInit(): void {
    this.activatedRoute.data.subscribe(({ post }) => (this.post = post));
    this.authSubscription = this.accountService.getAuthenticationState().subscribe(account => (this.account = account));
  }

  previousState(): void {
    window.history.back();
  }

  private isAdmin(): boolean | undefined {
    return this.account?.authorities.includes('ROLE_ADMIN');
  }
}

Когда код скомпилирован, я получаю ошибку

ERROR in ./src/main/webapp/app/entities/post/post-detail.component.ts 21:30
Module parse failed: Unexpected token (21:30)
File was processed with these loaders:
 * ./node_modules/angular2-template-loader/index.js
 * ./node_modules/cache-loader/dist/cjs.js
 * ./node_modules/thread-loader/dist/cjs.js
 * ./node_modules/ts-loader/index.js
 * ./node_modules/eslint-loader/dist/cjs.js
You may need an additional loader to handle the result of these loaders.
|     }
|     isAdmin() {
>         return this.account ? .authorities.includes('ROLE_ADMIN') : ;
|     }
| };
ℹ 「wdm」: Failed to compile.

В качестве обходного пути, если я просто жестко закодирую возвращаемое значение 'true' в методе isAdmin () это работает и компилируется. Почему просто проверить, содержит ли массив что-то, что приводит к выходу из строя веб-пакета?

1 Ответ

1 голос
/ 21 февраля 2020

Необязательная цепочка была введена в Typescript 3.7, в текущем JHipster 6.7.1 используется Typescript 3.4.5, поэтому неудивительно, что ваше выражение не понято и не переведено как троичный оператор.

Попробуйте обновить версию машинописи в пакете. json и npm установите, чтобы увидеть, решит ли она это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...