Typescript предупреждения при использовании интерфейса и OpaqueToken в Angular 2 приложения

Я следую документации здесь и использую ng-cli.

Я создал следующий конфигурационный файл (app-config.ts):

import { OpaqueToken } from '@angular/core';

export interface AppConfig {
  supportTelephoneNumber: string;
}

export let APP_CONFIG_t = new OpaqueToken('app.config');

export const APP_CONFIG: AppConfig = {
  supportTelephoneNumber: '1111 111 1111'
};

и в моем файле app.module.ts:

...
@NgModule({
  declarations: [
    UkCurrencyPipe,
    AppComponent,
    HomeComponent
  ],
  imports: [
    BrowserModule,
    FormsModule,
    HttpModule,
    RouterModule.forRoot(ROUTES, { useHash: true }),
    MaterialModule.forRoot()
  ],
  providers: [
    { provide: APP_CONFIG_t, useValue: APP_CONFIG },
    ...

Я использую эту конфигурацию в файле app.component.ts следующим образом:

import { Component, Inject } from '@angular/core';
import { APP_CONFIG_t, AppConfig } from './app-config';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.less']
})
export class AppComponent {
  constructor(@Inject(APP_CONFIG_t) public config: AppConfig) {

  callSupport(): void {
    window.location.href = 'tel:+' + this.config.supportTelephoneNumber;
  }
}

Когда я обслуживаю свое приложение с помощью ng serve, все работает нормально, но я вижу эти предупреждения в консоли, откуда я запускаю ng server:

ПРЕДУПРЕЖДЕНИЕ в. /src/app/app.component.ts
40: 166 Экспорт" AppConfig "не найден в './app-config'

ПРЕДУПРЕЖДЕНИЕ в. /src/app/app.component.ts
40: 195 экспорт "AppConfig" не найден в './app-config'

Кто-нибудь знает, что означают эти предупреждения и нужно ли мне беспокоиться о них?

Мои версии

  • ОС: Mac OS X El Capitan v10.11.6
  • ng-cli: v1.0.0-beta.16
  • angular: v2.0.1
  • typescript: v2.0.2

Ответ 1

В соответствии с comment о выпуске https://github.com/angular/angular-cli/issues/2034

с той же проблемой. (Хорошо работает, несмотря на предупреждение) вы экспортируете в файл более одного интерфейса/класса/const? проблема остановилась для меня после того, как я экспортировал каждый интерфейс из собственного выделенного файла.

означает, что если у меня был один файл с несколькими экспортерами - я получил предупреждения в сборке (экспорт "MyInterface1" не найден в "../файле" )

file.ts

export interface MyInterface1 {}
export interface MyInterface2 {}

после рефакторинга - без предупреждения

file1.ts

export interface MyInterface1 {}

file2.ts

export interface MyInterface2 {}