Typowanie dynamiczne to przypisywanie typów do wartości przechowywanych w zmiennych w trakcie działania programu. Przy zastosowaniu typowania dynamicznego, zmienne nie posiadają typów przypisanych statycznie, czyli przed uruchomieniem programu np. w trakcie kompilacji. W takiej sytuacji typ zmiennej wynika z wartości, jaką dana zmienna przechowuje. Jest to jeden ze sposobów na zwolnienie programisty z obowiązku deklarowania typów zmiennych. Ułatwia to operacje na zmiennych, utrudnia natomiast kontrolę integralności programu. Zmienna może w różnych momentach wykonania programu przechowywać wartości różnych typów.