我有这样的代码:
界面:
interface IAuthService {
forms: {
chn: any;
che: any;
cpw: any;
fpw: any;
login: any;
logout: any;
r: any;
rpw: any;
};
我的课程:
class AuthService implements IAuthService {
forms: {
chn: any;
che: any;
};
static $inject = [
'$interval'
];
constructor(
public $interval
) {
this.forms = {
chn: {},
che: {}
};
}
有人可以告诉我是否可以进行分配:
chn: {},
che: {}
在代码的前几行中,如果有什么理由在构造函数中执行它?如果可以在
内进行 forms: {
chn: any;
che: any;
那我怎么能这样做?我尝试了一些不同的组合,但都给了我语法错误。
forms: {
chn: any = {};
给了我错误:
严重级代码描述项目文件行错误TS2420类 ' AuthService'错误地实现了界面' IAuthService'。类型 财产的形式'是不相容的。 输入' {chn:any; }'不能分配给' {chn:any; che:any;}'。 物业' che'缺少类型' {chn:any; }&#39 ;.用户C:\ H \ user \ user \ app \ services \ authservice.ts 1
答案 0 :(得分:0)
您可以使用“?”将某些字段(属性)标记为可选:
interface IAuthService {
forms: {
chn: any;
che: any;
cpw?: any;
fpw?: any;
login?: any;
logout?: any;
r?: any;
rpw?: any;
};
在这种情况下,你可以做出这样的任务:
this.forms = {
chn: {},
che: {}
};
和此:
this.forms = {
chn: {},
che: {},
cpw: {}
};
但不是这样:
this.forms = {
chn: {}
};