Линтер (linter) помогает писать красивый код, буквально "заставляя" в нужных местах ставить точку с запятой, например, или же определённым образом форматировать код (например, чтобы код был написан так, как это рекомендуется в стандарте);
Претиер (prettier) (от англ. pretty - значит милый) - помогает форматировать какой-нибудь код так, чтобы его смогли прочитать люди. К примеру, есть следующий JSON -
{"foo":5,"bar":6}
- в таком виде его читать неудобно. Претиер приведёт этот JSON к следующему виду:
{
"foo": 5,
"bar": 6
}
Хинтер (hinter) - даёт подсказки (вот тут, честно говоря, не могу дать разъяснения, подождите других отвечающих)
Какое у них отличие, и что лучше?
Они созданы для разных целей, поэтому вопрос "Что лучше" здесь вряд ли применим