docs(daily-email): add 2022-12-21

This commit is contained in:
Oliver Davies 2022-12-24 20:21:25 +00:00
parent 51b99b29ff
commit 17cb64b90c

View file

@ -0,0 +1,19 @@
---
title: >
Duck typing
pubDate: 2022-12-21
permalink: >
archive/2022/12/21/duck-typing
---
If it looks like a duck, walks like a duck, and quacks like a duck, it must be a duck.
If I pass a parameter into a function, as long as it works with the code within the function - it is of the correct type and has the expected properties and methods - it will work, although nothing is enforcing that the correct thing is passed in.
If not, you'd get an error that the method or property doesn't exist when trying to invoke or access it.
This is the opposite of strict typing, where you'd get a Type error if you passed the wrong thing.
Both are valid approaches, though I prefer to use types and get specific error messages and leverage tools like static analysis, which work better the more it understands your code.
In particular when writing and using open-source code that anyone can use however they like, I'd suggest leveraging types and type-checking, but it depends on what you, your team or your community prefer.