Kurz erklärt
Duck Typing bedeutet: Ein Objekt wird danach beurteilt, was es kann, nicht, welcher Klasse es angehört. „Wenn es läuft wie eine Ente und quakt wie eine Ente, dann ist es eine Ente.“
Genauer
In dynamischen Sprachen wie Python, Ruby und JavaScript genügt es, dass ein Objekt die benötigten Methoden besitzt; eine gemeinsame Basisklasse oder Schnittstelle ist nicht nötig. Passt etwas nicht, fällt das erst zur Laufzeit auf. Go und TypeScript kennen eine statisch geprüfte Variante, die *strukturelle Typisierung*.