У меня есть перегруженная функция, которая выглядит следующим образом:
function getUserId(request: ContextParameters, requireAuth: true): string;
function getUserId(request: ContextParameters, requireAuth: false): string | undefined;
function getUserId(request: ContextParameters, requireAuth = true): string | undefined {
const authHeader = request.request.headers.authorization;
if (authHeader) {
const token = authHeader.replace('Bearer ', '');
const payload = jwt.verify(token, 'THISISTHENODESECRET') as TokenPayload;
return payload.userId;
}
if (requireAuth)
throw new Error('Authentication required');
}
export default getUserId;
Требуется 2 аргумента, один из которых имеет аргумент по умолчанию.Поэтому мне нужно только предоставить 1 аргумент.Однако, когда я пытаюсь использовать эту функцию следующим образом:
const userId = getUserId(request);
я получаю следующую ошибку:
Expected 2 arguments, but got 1.
Это что-то ожидаемое?или ошибка?и как мне исправить это?
Кроме того, я понимаю, что могу просто отключить strictNullChecks
, и у меня нет необходимости в перегрузке, но я бы хотел оставить это включенным.