Typowanie słabe – system typów, w którym typ wyrażenia może być automatycznie zmieniony, jeśli kontekst tego wymaga. Oznacza to m.in. automatyczne konwersje pomiędzy niektórymi typami.
Pewną zaletą słabego typowania w porównaniu z silnym typowaniem jest to, że wymaga ono mniejszego nakładu pracy programisty, ponieważ kompilator lub interpreter niejawnie wykonuje pewne konwersje. Jednakże, wadą może być to, że systemy ze słabym typowaniem wychwytują mniej błędów na etapie kompilacji i błędy te mogą pozostać niewykryte nawet po zakończeniu testowania. Na przykład w języku PHP łańcuchy "1000" i "1e3" dają przy porównaniu równość, ponieważ są niejawnie konwertowane do liczb zmiennopozycyjnych - mimo że jako łańcuchy znaków są różne. W językach JavaScript i PHP istnieje specjalny operator porównania (identyczność) === który sprawdza czy oba argumenty są tego samego typu i mają tę samą wartość.
Przykład w języku PHP:
$liczba = 1;
if ("1" == $liczba) {
// mimo porównywania z tekstem, warunek jest prawdziwy, ponieważ liczba jest rzutowana na typ string
}