我编码了这个界面:
interface IExamService {
exam: IExam;
exams: IExam[];
}
interface IExam {
current: boolean;
id: number;
name: string;
subject: string;
}
并在此处使用:
class ExamService implements IExamService {
exam: IExam;
exams: IExam[] = [
{
current: false,
id: 1,
examId: 1,
subject: 'x',
name: 'Exam 1'
},
{
current: false,
id: 2322,
examId: 2322,
subject: 'y',
name: 'Custom Exam 1'
}
];
}
有人可以告诉我为什么id不会将examId
用作错误吗?
答案 0 :(得分:2)
Typescript接口不会阻止您添加其他属性。从TypeScript手册:
请注意,我们的对象实际上具有比此更多的属性,但是 编译器只检查至少存在所需的那些 并匹配所需的类型。 http://www.typescriptlang.org/Handbook#interfaces
您的对象符合IExam界面。添加其他属性不会阻止您的对象符合接口。
答案 1 :(得分:1)
在这里猜测一下,如果你没有实现接口的某个属性,它会不会抱怨?除了接口定义的属性之外,添加额外的属性对我来说不是一个问题。