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 {}