Generic Functions are powerful, but sometimes they are too flexible. In my last post, I discussed how Generic Functions allow inputs to be anything. But sometimes, 'anything' is a problem. By default, a generic parameter <T> is a black box. TypeScript assumes nothing about it. If you try to access a specific property (like .message or .length) on it, TypeScript screams because it can't guarantee that property exists. The solution? Type Constraints! Just like the generic types, we can restrict generics in generic functions using the 'extends' keyword. Instead of saying 'This can be anything,' you say: 'This can be anything as long as it has this minimum structure.' Think of an Error Utility. You need to ensure an error has a 'message,' but you don't want to strip away extra fields like 'code' or 'stack' from your custom error objects. Constraints strike the perfect balance: Minimum requirements for the function, maximum flexibility for the caller. #TypeScript #JavaScript #Programming #Coding #WebDevelopment
Type Constraints for Generic Functions in TypeScript
More Relevant Posts
-
Good JavaScript code isn’t about fancy syntax. It’s about clarity, maintainability, and smart decisions. A few habits that can instantly improve your JS code 👇 ✔ Use meaningful variable names ✔ Keep functions small and focused ✔ Comment why, not what ✔ Avoid callback hell — use async/await ✔ Write code for humans, not just machines Small improvements in JavaScript lead to cleaner code and fewer bugs over time. #JavaScript #WebDevelopment #FrontendDevelopment #CodingTips #CleanCode #Programming #SoftwareEngineering #DeveloperLife #CodeQuality
To view or add a comment, sign in
-
-
Most developers use Mapped Types. Few realize they can use them to 'filter' keys on the fly. Imagine you have a type with 50 properties. You need a new type that only includes keys matching a specific pattern, like those containing the word 'Id'. Not keys you manually list. Not keys you hardcode. But keys that match a rule. This is where selective remapping in mapped types shines. We know we can use the 'as' keyword to rename keys. But the real 'pro move' is knowing what happens when you remap a key to 'never.' In TypeScript, if a key is remapped to 'never', it is removed from the resulting type entirely. And that's an important point to keep in mind because this is what we can use to do a selective remapping in mapped types. By iterating over every key and applying a conditional check: 1. If the key matches your rule - Keep it. 2. If it doesn’t - Remap to 'never.' This pattern is extremely useful in real-world scenarios where you need only specific prefixed keys or you’re building reusable utility types. When you're building utility types, API response handlers, or form schemas, you often need specific subsets of properties. This pattern lets you extract them programmatically instead of maintaining duplicate type definitions. Once you realize you can conditionally 'filter' keys during transformation, you stop fighting the type system and start making it work for you. #TypeScript #JavaScript #Programming #Coding #WebDevelopment
To view or add a comment, sign in
-
-
🧠 Ever wondered where a variable is accessible in your code? That’s called scope. JavaScript mainly has three types of scope 👇 🔹 Global Scope Variables declared outside any function or block Accessible everywhere 🔹 Function Scope Variables created inside a function Accessible only within that function 🔹 Block Scope Variables created inside { } (let and const only) 💡 This is why: ❌ var can cause bugs ✅ let & const are safer Understanding scope helps you: - Avoid variable conflicts - Write predictable code - Debug faster Scope isn’t advanced — it’s foundational JavaScript 🚀 #JavaScript #Scope #Frontend #WebDevelopment #LearnJS #Programming #LearningInPublic
To view or add a comment, sign in
-
-
Call Stack & Memory Heap — JavaScript Basics You Must Know ⚙️ Ever wondered how JavaScript actually runs your code? Two core concepts make it happen: 🧠 Memory Heap Stores variables, objects, and data dynamically during execution. 📚 Call Stack Keeps track of function calls line by line using a Last In, First Out (LIFO) rule. Understanding these helps you: - Debug errors like stack overflow - Write better recursive functions - Avoid memory leaks - Understand why JavaScript is single-threaded I wrote a beginner-friendly breakdown with examples. Check the comment 👇 #JavaScript #WebDevelopment #Frontend #Programming #LearnJavaScript #SoftwareEngineering
To view or add a comment, sign in
-
-
JavaScript – Day 18 🚀 Promise.all vs Promise.race When working with multiple asynchronous tasks, JavaScript provides Promise.all() and Promise.race() to manage them efficiently. In this post: 1. Promise.all() waits for all promises to complete 2. Promise.race() returns the result of the fastest promise These methods are commonly used in real-world applications like API calls and parallel tasks. 📌 Day 18 of my JavaScript learning series. Next: Error handling in async code (real patterns) 🔥 #JavaScript #Promises #AsyncJavaScript #WebDevelopment #FrontendDeveloper #BackendDeveloper #FullStackDeveloper #LearnJavaScript #Programming #Coding #DeveloperCommunity #100DaysOfCode
To view or add a comment, sign in
-
-
Strengthening my JavaScript fundamentals one concept at a time! Today I revisited essential string functionalities in JavaScript — simple methods, but extremely powerful in real-world development. From transforming text to searching, slicing, and splitting strings, these functions are used almost everywhere in frontend applications. ✨ Quick reminder: Clean code starts with strong basics. Consistent practice with fundamentals like string manipulation helps write more efficient logic, optimize performance, and handle data better in real projects. What’s one JavaScript method you use almost daily? 👇 #JavaScript #WebDevelopment #FrontendDeveloper #CodingJourney #LearnToCode #Programming #ReactDeveloper
To view or add a comment, sign in
-
-
JavaScript – Day 15 🚀 Event Loop (Call Stack & Callback Queue) JavaScript is single-threaded, but it can still handle asynchronous operations using the Event Loop. In this post, I’ve explained: Call Stack Web APIs Callback Queue How async code actually runs Understanding the Event Loop is crucial for writing efficient and bug-free JavaScript. 📌 Day 15 of my JavaScript learning series. Next: Promises (then / catch / finally) 🔥 #JavaScript #EventLoop #AsyncJavaScript #WebDevelopment #FrontendDeveloper #BackendDeveloper #FullStackDeveloper #LearnJavaScript #Programming #Coding #DeveloperCommunity #TechContent #100DaysOfCode
To view or add a comment, sign in
-
-
💡 A cleaner way to assign values conditionally in JavaScript (??=, ||=, &&=) Instead of writing verbose if statements for defaults and conditional updates, JavaScript conditional assignment operators let you express intent in one line #JavaScript #WebDev #Coding #Frontend #Programming #ES2021
To view or add a comment, sign in
-
-
🚀 Hoisting & Closure Two concepts that explain why JavaScript behaves the way it does 👇 🔹 Hoisting JavaScript moves declarations to the top of their scope before execution. ✔ `var` → hoisted as `undefined` ❌ `let` / `const` → hoisted but inaccessible (TDZ) ✔ Function declarations are fully hoisted 🔹 Closure A closure allows a function to remember variables from its outer scope, even after that outer function has finished execution. 👉 Used in data hiding, callbacks, event handlers & React hooks. 💡 Master these = better debugging + better interviews 💬 Which one confused you more when learning JS? #JavaScript #JSConcepts #WebDevelopment #Frontend #Programming #Coding #InterviewPrep #React #100DaysOfCode
To view or add a comment, sign in
-
-
Most developers think they understand Hoisting.🙄 But ask them this: If let and const are hoisted then why does JavaScript throw a ReferenceError? 🤔 And here’s the bigger question: Why does var attach to window but let doesn’t? This is not beginner syntax anymore. This is about how the JavaScript engine actually prepares memory before execution. If you truly understand: • Memory Creation Phase • Global Execution Context • Temporary Dead Zone I’ve broken this concept down visually in a simple way. 🎯 Full breakdown is on my Instagram → @JswithDhruv Let’s build JavaScript fundamentals the right way. 📌 Save this for revision. Post Link: https://lnkd.in/dzUhxnNN #JavaScript #Programming #LearnToCode #ReactJs #connections #FrontendDevelopment
To view or add a comment, sign in
-
Explore content categories
- Career
- Productivity
- Finance
- Soft Skills & Emotional Intelligence
- Project Management
- Education
- Technology
- Leadership
- Ecommerce
- User Experience
- Recruitment & HR
- Customer Experience
- Real Estate
- Marketing
- Sales
- Retail & Merchandising
- Science
- Supply Chain Management
- Future Of Work
- Consulting
- Writing
- Economics
- Artificial Intelligence
- Employee Experience
- Workplace Trends
- Fundraising
- Networking
- Corporate Social Responsibility
- Negotiation
- Communication
- Engineering
- Hospitality & Tourism
- Business Strategy
- Change Management
- Organizational Culture
- Design
- Innovation
- Event Planning
- Training & Development