Não sei o que pode ser, conferi o código e as chaves mil vezes mas sempre dava erro dizendo que tinha uma chave } unexpected após a palavra function em:
static ehAutenticavel(autenticavel) {
return "autenticar" in autenticavel &&
autenticavel.autenticar instanceof function
}
Então resolvi da maneira abaixo, que não sei com certeza se dá o mesmo resultado mas funcionou aqui.
static ehAutenticavel(autenticavel) {
if("autenticar" in autenticavel &&
typeof autenticavel.autenticar === 'function') {
return true
}
}