невозможно присвоить значение const в useValue - PullRequest
0 голосов
/ 24 февраля 2019

Я создал константный класс ElementConst

export class ElementConst {
    public static LINK = 'LINK';
    public static HEADING_1 = 'heading-1';
    public static HEADING_2 = 'heading-2';
    public static HEADING_3 = 'heading-3';
    public static HEADING_4 = 'heading-4';
    public static HEADING_5 = 'heading-5';
    public static HEADING_6 = 'heading-6';
    public static PARAGRAPH = 'paragraph';
    public static STRONG = 'BOLD';
}

Итак, я импортировал этот класс в свой модуль и пытаюсь назначить его useValue

export const CONTENT_MAPPINGS_PROVIDER: Provider = [
  {
    provide: CONTENT_MAPPINGS,
    useValue: {
      ElementConst.HEADING_1: HeadingComponent, // trying to do something like this, which throws error
      'heading-2': HeadingComponent,
      'heading-3': HeadingComponent,
      'heading-4': HeadingComponent,
      'heading-5': HeadingComponent,
      'heading-6': HeadingComponent,
      'paragraph':ParagraphComponent
    }
  }
];

ПочемуЯ не могу присвоить значения внутри useValue?

1 Ответ

0 голосов
/ 24 февраля 2019

При указании ключа, который является динамическим, вам нужно заключить его в [].

Вот простой пример того, как заставить ваш код передавать компилятор:

export class ElementConst {
    public static LINK = 'LINK';
    public static HEADING_1 = 'heading-1';
    public static HEADING_2 = 'heading-2';
    public static HEADING_3 = 'heading-3';
    public static HEADING_4 = 'heading-4';
    public static HEADING_5 = 'heading-5';
    public static HEADING_6 = 'heading-6';
    public static PARAGRAPH = 'paragraph';
    public static STRONG = 'BOLD';
}

interface Provider {
  provide: any;
  useValue: any;
}

const HeadingComponent = {};
const ParagraphComponent = {};

export const CONTENT_MAPPINGS_PROVIDER: Provider[] = [
  {
    provide: '',
    useValue: {
      [ElementConst.HEADING_1]: HeadingComponent,
      'heading-2': HeadingComponent,
      'heading-3': HeadingComponent,
      'heading-4': HeadingComponent,
      'heading-5': HeadingComponent,
      'heading-6': HeadingComponent,
      'paragraph': ParagraphComponent,
    }
  }
];
...