
getPossibleLocaleKeys просто создание возможных вариантов, без асинхронного кода. Просто Вам необходимо будет по таким вариантам найти локаль в объекте и если её нет, то использовать некоторую за стандартный вариант.
getPossibleLocaleKeys. Сами сможете переделать в работу с массивом?
lang = ru-RU, а в объекте будет просто ru. Плюс, Вы используете TypeScript, и userLocale будет string, а не ключом из locales, т.е. надо будет кастовать.
locale и искать по ключу в них.import * as locales from 'date-fns/locale';