This should be a trait, but typescript only supports mixins. See: https://github.com/Microsoft/TypeScript/issues/311 Turns out the material team followed the same path with the color mixin. https://github.com/angular/material2/blob/master/src/lib/core/common-behaviors/color.ts