53 items
Discriminated Union Narrowing in React
Code QuizDiscriminated Unions in React Props
QuizNarrowing Invalidation
FlashcardType Guards vs Type Assertions
Slides / VideoNarrowing the unknown Type
Slides / VideoControl Flow Analysis and Narrowing Scope
Slides / VideoAssertion Functions with 'asserts'
Slides / VideoExhaustiveness Checking with never
Slides / VideoDiscriminated Unions and Tagged Narrowing
Slides / VideoUser-Defined Type Guards with 'is'
Slides / VideoNull and Undefined Narrowing
Slides / VideoEquality Narrowing with === and switch
Slides / VideoTruthiness Narrowing
Slides / VideoThe in Operator for Property Checking
Slides / Videoinstanceof Type Guards
Slides / Videotypeof Type Guards
Slides / VideoWhat Type Narrowing Is
Slides / VideoAssertion Functions (asserts)
FlashcardUser-Defined Type Guards (is)
FlashcardNarrowing the unknown Type
FlashcardEquality Narrowing
FlashcardControl Flow Analysis Narrowing
FlashcardTruthiness Narrowing
FlashcardDiscriminated Unions
FlashcardArray.isArray Narrowing
Flashcardtypeof Type Guards
FlashcardNon-Null Assertion Operator (!)
Flashcardin Operator Narrowing
FlashcardType Assertions vs Type Guards
FlashcardNarrowing Out null and undefined
FlashcardExhaustiveness Checking with never
Flashcardinstanceof Type Guards
FlashcardFilter Callback Missing Type Predicate
Code QuizHelper Function Loses Narrowing
Code Quiztypeof Cannot Detect Arrays
Code QuizReassignment Resets Narrowing
Code QuizNon-null Assertion Hides Real Bug
Code QuizWrong Null Check Misses Undefined
Code QuizEquality Narrowing Dead Branch
Code QuizTruthiness Narrowing Drops Zero
Code QuizOptional Chaining Yields Possibly Undefined
Code QuizUsing unknown Without Narrowing
Code QuizArray.isArray as Type Guard
QuizTruthiness Narrowing
QuizEquality Narrowing
QuizControl Flow Analysis Basics
Quiztypeof Guards for Primitives
QuizType Predicate Return Effect
QuizNon-null Assertion Operator
QuizNarrowing via Assignment
Quiznever in Exhaustiveness Checking
QuizNarrowing Literal and Union Types
QuizNarrowing Loss in Closures
QuizOptional Chaining Yields Possibly Undefined
Comparing an optionally-chained value leaves it possibly undefined.
function firstItem(arr?: string[]) {
if (arr?.length > 0) {
console.log(arr[0]);
}
}What is the bug in this code?