Not sure about negation, but humble
Typescript lets you use union and intersection types.<p>I am hooked on intersection types
in Typescript. It is like mixin heaven.<p>I have a WithId type I use alot that I can tack on to any Firebase record type.<p>If I had the motivation I could write a generic firebase getter that returns documents as a “T & WithId” (means type T with an additional id:string field)<p>It decreases the number of types you need to define for one. And lets you lego up various interfaces.