У меня есть следующий интерфейс:
export interface Preferences {
theme: Theme;
}
с Theme
, определяемым как enum:
export enum Theme {
dark = 'dark',
light = 'light'
}
Предположим, у меня есть файл JSON следующим образом:
{
"theme": "light"
}
Предположим также, что я хочу использовать его в службе следующим образом:
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable, of } from 'rxjs';
import { Preferences } from '../models/preferences';
import prefExample from '../../assets/preferences.json';
@Injectable({
providedIn: 'root'
})
export class MyService {
constructor(private httpClient: HttpClient) { }
getPreferences(): Observable<Preferences> {
return of(prefExample);
}
}
Когда я пытаюсь запустить приведенный выше код, он говорит мне:
Types of property 'theme' are incompatible.
Type 'string' is not assignable to type 'Theme'.