Hallpass Academy
Categories
Series
Originally notes to ourselves on topics, techniques, and syntax that we often forget.
Notes
found 14 post(s)
Necessity is the Mother of Invention
Generate Type from Dictionary
How I discovered a cool little tip on creating string literal union types from dictionaries, and why it matters.
by Gail Johnson * Feb. 09, 2026
Typescript, Notes, Challenge
Error submitting multipart/form-data
Working with Multipart Form Data in Angular
Do you work with an API that only accept POST requests using multipart form data? This Quick Note addresses a "gotcha" that perplexed me.
by Robert Banning * Sep. 10, 2025
Angular, Notes
What to hide and what to add
Lessons in Accessibility
When considering users who use a screen reader to access your site/app, you must consider both hiding and adding elements. In the rush to get to launch, it is easy to miss how we can enhance the experience of those using screen readers.
by Gail Johnson * Mar. 24, 2025
Style, Notes
Using Variables in Element Style Attributes
A Cooler Way to Set Style
Did you know you can change variables using an element's style attribute?
by Gail Johnson * Mar. 03, 2025
Style, Notes
What is the Stacking Context?
Lessons Learned - CSS Pseudo Elements
Learn about how the CSS Stacking Context affects layering elements including ::before and ::after pseudo elements.
by Robert Banning * Jan. 27, 2025
Style, Notes
Create the function to do it all!
Function Overloading in Typescript
Function overloading allows functions to share the same name but have different signatures (parameters) and implementations. Understanding function overloading is an essential skill in your TS toolbelt.
by Robert Banning * Jun. 04, 2024
Notes, Typescript
Great for initializing object...
Nullish Coalescing Assignment
by Robert Banning * May. 04, 2024
Typescript, Notes
Limitations on extending/intersecting objects in Typescript
Overriding Properties when Extending Objects
Learn why you can't extend interfaces or intersect object types with common properties in Typescript; and how you can work around this.
by Robert Banning * Mar. 08, 2024
Typescript, Notes
Both Worth Learning
Lazy Load Images - Two Strategies
by Robert Banning * Nov. 13, 2023
Notes
Styling based on siblings and children
CSS - Using the :has() Pseudo-Class
We can style elements based on their parents. But how can we style parents based on their children. The :has() function solves this problem by allowing us to "look ahead".
by Robert Banning * Nov. 01, 2023
Notes, Style
Why size depends on text-orientation.
CSS - What is inline and block size?
by Robert Banning * Oct. 30, 2023
Notes, Style
Referencing function parameter as the default for another parameter.
Typescript - Defaulting Parameters
I was sure this wasn't possible! Here is how you can use one function parameter as the default for another parameter. Follow up with a challenge. Difficulty: easy
by Wiggy * Sep. 18, 2023
Notes, Typescript, Challenge
What is going on here?
The array.map(x => await act(x)) Promise Headache
by Robert Banning * Jun. 06, 2023
Notes, Diabolical
What is going on here?
The ['1', '2', '3'].map(parseInt) Headache
So you want to transform string elements in an array to integers and you know parseInt takes a string and converts it to an integer. So why will this fail?
by Robert Banning * Jun. 06, 2023
Notes, Diabolical