docs(daily-email): add 2022-12-21
This commit is contained in:
parent
51b99b29ff
commit
17cb64b90c
19
website/src/daily-emails/2022-12-21.md
Normal file
19
website/src/daily-emails/2022-12-21.md
Normal 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.
|
Loading…
Reference in a new issue