From 17cb64b90c992674c9ec99cb8cab64ced761ed82 Mon Sep 17 00:00:00 2001 From: Oliver Davies Date: Sat, 24 Dec 2022 20:21:25 +0000 Subject: [PATCH] docs(daily-email): add 2022-12-21 --- website/src/daily-emails/2022-12-21.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 website/src/daily-emails/2022-12-21.md diff --git a/website/src/daily-emails/2022-12-21.md b/website/src/daily-emails/2022-12-21.md new file mode 100644 index 00000000..50202ce3 --- /dev/null +++ b/website/src/daily-emails/2022-12-21.md @@ -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.