interface Foo { a: number; b: number; bar: string; } interface ObjectContaining { new (sample: Partial): Partial } declare let cafoo: ObjectContaining<{ a: number, foo: number }>; declare let cfoo: ObjectContaining; cfoo = cafoo; cafoo = cfoo;