LINUX.ORG.RU

История изменений

Исправление lesopilorama, (текущая версия) :

Такого не бывает. Ты всегда понимаешь, что age - это число, username и password - строки, а isAuthed - тип для буллинга.

Всё сложнее. Была функция, которая принимала obj и ИНОГДА вызывала у него obj.hello(). Про неё все забыли, она глубоко в недрах. У объекта в какой-то момент пропала hello() и была заменена на что-то другое или может быть в hello() появился аргумент.

Так вот хотелось бы, чтобы компилятор мне до деплоя кода на прод сказал, что hello() нет, а ты вызываешь или ты забыл аргумент.

Или у obj был тип Skotina, а теперь туда случайно передали bool. Внутри функции, куда это передали, нет особо ничего умного - аргумент проверялся на == undefined зачем-то по историческим причинам и оба варианта работали в JS. Но это выглядит не надёжно и жопно, хочется на этапе компиляции поймать много замечаний.

Исправление lesopilorama, :

Такого не бывает. Ты всегда понимаешь, что age - это число, username и password - строки, а isAuthed - тип для буллинга.

Всё сложнее. Была функция, которая принимала obj и ИНОГДА вызывала у него obj.hello(). Про неё все забыли, она глубоко в недрах. У объекта в какой-то момент пропала hello() и была заменена на что-то другое или может быть в hello() появился аргумент.

Так вот хотелось бы, чтобы компилятор мне до деплоя кода на прод сказал, что hello() нет, а ты вызываешь или ты забыл аргумент.

Или у obj был тип Skotina, а теперь туда случайно передали bool. Внутри функции, куда это передали, нет особо ничего умного - аргумент проверялся на == undefined например и оба варианта работали в JS. Но это выглядит не надёжно и жопно, хочется на этапе компиляции поймать много замечаний.

Исходная версия lesopilorama, :

Такого не бывает. Ты всегда понимаешь, что age - это число, username и password - строки, а isAuthed - тип для буллинга.

Всё сложнее. Была функция, которая принимала obj и ИНОГДА вызывала у него obj.hello(). Про неё все забыли, она глубоко в недрах. У объекта в какой-то момент пропала hello() и была заменена на что-то другое или может быть в hello() появился аргумент.

Так вот хотелось бы, чтобы компилятор мне до деплоя кода на прод сказал, что hello() нет, а ты вызываешь или ты забыл аргумент.