Как пользователь другого кода, я хочу иметь возможность посмотреть функцию и выяснить, что требуется, в зависимости от того, является ли тип необязательным.
Например:
function doSomething(required: string, optional?: string)
Но как разработчик, который пишет код для кого-то другого, я хочу по-прежнему обозначать, что параметр требуется, но я хочу, чтобы проверка типа не требовалась, поскольку я не могу гарантировать, что мой конечный пользователь также использует машинописный текст и Я хочу изящно справляться с неверными аргументами.
Можно ли получить мой торт и тоже его съесть? Могу ли я обозначить параметр как необязательный, но все равно получаю ошибки компиляции, если я не проверяю или не обрабатываю неопределенный аргумент? *
Или решение просто иметь предварительные условия для всех обязательных полей?