在构建我的应用程序时,我收到以下错误,这对我来说似乎很奇怪,因为属性 appName 已声明:
../src/app/app.service.ts (30,14) 中的错误:类“AppService”错误地实现了接口“InternalStateType”。“AppService”类型中缺少属性“appName”。)
应用程序服务.ts
import {Injectable} from '@angular/core';
interface InternalStateType {
[key: string]: any;
appName: string;
darkMode: boolean;
defaultLang: string;
topnavTitle: string;
messagePanelOpen: boolean;
sidenavOpen: boolean;
sidenavMode: string;
sidenavCollapse: boolean;
pageFullscreen: boolean;
pageFooter: boolean;
initial: boolean
};
/**
* App service
*/
@Injectable()
export class AppService implements InternalStateType {
// Set your states default value.
private state: InternalStateType = {
appName: 'MyApp',
darkMode: false,
defaultLang: 'en',
topnavTitle: 'MyApp',
messagePanelOpen: false,
sidenavOpen: false,
sidenavMode: 'over',
sidenavCollapse: true,
pageFullscreen: false,
pageFooter: false,
initial: false
};
public cloneState(): InternalStateType {
return JSON.parse(JSON.stringify(this.state));
}
public reloadState(state: InternalStateType) {
this.state = state;
}
public getState(prop?: any): InternalStateType {
const state = this.state;
return state.hasOwnProperty(prop) ? state[prop] : state;
}
public setState(prop: string, value: any) {
return this.state[prop] = value;
}
}
Run Code Online (Sandbox Code Playgroud)
我哪里错了?感谢您的反馈意见
您实际上并没有类型appName上的属性AppService。您的state类型为InternalStateType并拥有appName财产。如果您确实想AppService实现InternalStateType,请按如下方式定义:
@Injectable()
export class AppService implements InternalStateType {
private appName: string;
// ... define other members of `InternalStateType` here
}
Run Code Online (Sandbox Code Playgroud)
如果您不打算AppService实现InternalStateType,请将其从类声明中删除:
export class AppService {
// ...
}
Run Code Online (Sandbox Code Playgroud)