I just now noticed I misunderstood the OP. You are needing to deep inheritance on interfaces. I read it the first time as deep inheritance on nodes with edges. Sorry about that.
You should be able to inherit from multiple interfaces but an interface cannot implement another interface, nor can a type implement another type. So here is a possible solution:
interface TextObject {
id: ID!
text: String
}
interface IPost{
datePublished: DateTime
}
type Post implements TextObject & IPost {
# have to have at least one field here
}
type Question implements TextObject & IPost {
title: String!
}
Just FYI, the GraphQL specification https://spec.graphql.org/ does not support interfaces implementing other interfaces in the latest (2018) release. It is in the draft for the next release though. This will probably be a blocker to get the specification published before this gets implemented by Dgraph.