【发布时间】:2020-05-04 14:35:08
【问题描述】:
我有一个界面如下:
export interface Preferences {
theme: Theme;
}
Theme 被定义为枚举:
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'.
【问题讨论】:
-
prefExample as Preferences?或者写一些接受 JSON 并返回Preferences的东西。
标签: json angular enums rxjs observable