Implement.js – bringing interfaces (and much more) to an interface-less language
github.com