When a beginner asks you "when do I use semi-colons?" would you rather say this?
// what people who say "use semicolons!!" say
class Foo {
prop = {
}; // yes
static bar () {
if (stuff) {
doStuff(); // yes
} // no
for (var key in obj) {
} // no
return {
}; // yes
} // no
foo () {
} // no
} // no
Foo.prop = {
}; // yes
things.map(thing => thing.name /*no*/)
var boing = function () {
}; // yes
function boing () {
} // no
/*no*/[1,2,3].map(); // yes
/*no*/(function () {})(); // yes
Or this?
// what people who say "don't use semicolons!" say
/*yes*/;[1,2,3].map()
/*yes*/;(function () {})()
// which are two things I haven't done in the last 3 years, mind you
In the end, I'd rather not talk about semi-colons, and just do what people around me want me to do, but when teaching a beginner who asks (and they ALWAYS ask this) "when do I use a semi-colon", I just put my face in my hands and say "I don't have any answers for you".
Brilliant. I have the same problem once I switched back to ES6 from CoffeeScript. Personally, I tell my students something like "You don't have to write them. There are only two cases you never run over anyway, especially with eslint which you are using already. But for public projects, you have to use semi-colons, because some people have obsession or fetish about them, and it always ends in endless bikeshedding." I have just one simple rule for semi-colon: Don't ask, don't tell.