我有以下类和接口:
export interface IBody {
body : ListBody;
}
export class Element {
// ...
}
export class Paragraph extends Element implements IBody {
// ...
}
export class Character extends Element {
// ...
}
我有一段代码,其中将获取Element派生对象的数组(不仅仅是段落和字符)。对于那些实现了IBody接口的对象,我需要在其Body中执行操作。
如何最好地判断它是否实现了IBody接口?是使用 "if (element.body !== undefined)" 吗?
然后我该如何访问它呢? "var bodyElement = <IBody> element;" 给出了一个错误。
C:/src/jenova/Dev/Merge/AutoTagWeb/client/layout/document/elements/factory.ts(34,27): error TS2012: Cannot convert 'Element' to 'IBody':
Type 'Element' is missing property 'body' from type 'IBody'.
Type 'IBody' is missing property 'type' from type 'Element'.
感谢 - Dave