Hallpass Academy
Categories
Series
Learn
What to Explore Today?
All Posts
Posted in 2026 (
found 2 posts
)
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
Getting On the AI Bandwagon, Carefully
New Year's Post (2026)
I don’t trust AI—and I’m not trying to fix that. Instead of rejecting it or embracing it, I decided to spend a year testing how AI might support learning and creativity without skipping the thinking that makes them matter.
by Gail Johnson * Jan. 01, 2026
Problem Solving, Emerging
Posted in 2025 (
found 4 posts
)
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
Posted in 2024 (
found 9 posts
)
Interfaces, Method Overloading, and Implementing these Interfaces
Typescript Method Overloading
Why do we need method overloading when we can create a general method signature using union parameter types? Let's find out.
by Robert Banning * Oct. 01, 2024
Typescript, Challenge
Exercise in Typescript Typing
Typescript Object Keys and Values
At first, this will seem an easy challenge as part one can be accomplished with basic Javascript functionality. Part two provides you with the opportunity to demonstrate your knowledge of accessing property on an unknown object.
by Gail Johnson * Aug. 21, 2024
Typescript, Challenge
How many red beans do you have?
Bowl of Jelly Beans
Challenge to analyze a bowl of jelly beans to determine the frequency of each color bean. Difficulty: medium
by Robert Banning * Jul. 23, 2024
Typescript, Challenge
Can you create TWO deepClone() functions?
Typescript Deep Clone Challenge
The spread operator can give you a clone (copy) of an object, but its properties still point to the same objects. How do you create a complete true clone of an object such that no properties point to original properties? Difficulty: medium
by Wiggy * Jul. 17, 2024
Typescript, Challenge
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
Why shouldn't you be able to reduce your set?
Typescript Set Reduce
In this challenge, you will level the playing ground giving Set the ability to reduce.
by Gail Johnson * Jan. 16, 2024
Typescript, Challenge
required - alias - transform
@Input() Options in Angular
Interview Question: declare an input property component to hold a list of colors with the following constraints: 1) Internal and external names of the property differ. 2) Must be included in every instance. 3) May accept an array of strings or a comma-delineated string. 4) List of colors is cleaned so no duplicates.
by Robert Banning * Jan. 06, 2024
Angular
Posted in 2023 (
found 9 posts
)
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
Using `extends` as a ternary expressions when typing
Gentle Introduction to Typescript Conditional Types
Today, we explore a way to create Typescript types that are based on some condition. We often (usually) use `extends` to create ternary expressions allowing us to build conditional types.
by Robert Banning * Mar. 17, 2023
Typescript
Why would anyone want static typing?
Getting Started w/ Typescript
Are you new to Typescript? This mini-introduction will get you started and hopefully spark interest in exploring more about Typescript.
by Robert Banning * Feb. 28, 2023
Typescript
Don't leave home without one!
Importance of the Problem Statement
by Gail Johnson * Jan. 04, 2023
Problem Solving