всегда удобно иметь набор инструментов на выбор.
если статическая типизация, доступна вместе с динамической то это идеальное сочетание на мой взгляд. Очень полюбил C# за эту возможность в своё время, именно там впервые начал пользоваться динамическими переменными. Автор typeScript и автор С#, pascal, delphi это один и тот же человек.
Только строгая типизация, более перспективна в плане производительности, однако подкидывает и немало гемороя.
к примеру
function hello(d){
console.log(d);
}
hello(1);
hello("привет");
уже работать небудет
Пришлось бы вводить в язык перегрузку функций и получилось бы что то вроде.
function hello(d:int){
console.log(d);
}
function hello(d:string){
console.log(d);
}
hello(1);
hello("привет");
нифига некамельфо.
вот поэтому я и говорю что статическая + динамическая - это гуд.
А только у статической и только динамической немало недостатков.