Interface segregation principle, as one of SOLID, is pretty understandable, but how to implement it in pure JavaScript without using any typing system like TypeScript or Flow?
Or, even more general, is there any good practice how to "simulate" interfaces in JS to separate API from implementation?