Ради интереса добавил "фикс" из ПР 40909 поверх вашего примера из ТС плейграунд. И мне ТС написал, что у метода Object.assing теперь восемь перегрузок 🙈
Потом написал функцию-обертку с тайпинтами из "фикса". Подсвечивает, что null нельзя присваивать в {}.
Чтобы совсем хорошо работало результат вызова функции обертки записываю в foo, чтобы ТС подсказал, что number is not assignable to type string.
Осталось к этому добавить правило линтера, и можно пугать неокрепших джунов.