20 lines
1 KiB
Markdown
20 lines
1 KiB
Markdown
---
|
|
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.
|