Typescript (1.4 & whatever version is powering the typescriptlang.org playground) does not generate a compiler error on code that seems wrong with respect to implicit ty
TypeScript uses a structural type system. Classes with identical properties are considered to be identical for the purposes of typechecking. It's better to think of instanceof as a runtime check about the prototype chain rather than a statement about what fields an object has or doesn't have.