0
0
Typescriptprogramming~5 mins

Excess property checks vs structural compatibility in Typescript - Quick Revision & Key Differences

Choose your learning style9 modes available
Recall & Review
beginner
What are excess property checks in TypeScript?
Excess property checks happen when you assign an object literal to a variable or parameter with a specific type, and TypeScript warns if the object has extra properties not defined in that type.
Click to reveal answer
beginner
Explain structural compatibility in TypeScript.
Structural compatibility means TypeScript compares the shape (properties and types) of two types to decide if one can be assigned to the other, ignoring the names of types.
Click to reveal answer
intermediate
Why does TypeScript allow extra properties when assigning variables but not with object literals?
TypeScript performs excess property checks only on object literals to catch typos or mistakes. When assigning variables, it trusts the variable's type and uses structural compatibility, allowing extra properties.
Click to reveal answer
intermediate
How can you bypass excess property checks when passing object literals?
You can assign the object literal to a variable first, or use a type assertion (like 'as') to tell TypeScript to trust the object shape, bypassing excess property checks.
Click to reveal answer
intermediate
Give an example where excess property checks cause an error but structural compatibility allows assignment.
Example: Passing {a: 1, b: 2, c: 3} directly to a function expecting {a: number, b: number} causes an error due to excess property 'c'. But assigning it to a variable first and then passing it works because of structural compatibility.
Click to reveal answer
What triggers excess property checks in TypeScript?
AAssigning a variable to another variable
BUsing type assertions
CAssigning an object literal directly to a typed variable or parameter
DDeclaring interfaces
What does structural compatibility in TypeScript compare?
AThe shape (properties and types) of types
BThe runtime values
CThe order of properties
DThe names of types
Which of these will cause an excess property check error?
AUsing a type assertion
BAssigning {x: 1, y: 2, z: 3} to a variable typed {x: number, y: number}
CAssigning a variable with extra properties to a typed variable
DPassing {x: 1, y: 2, z: 3} directly to a function expecting {x: number, y: number}
How can you avoid excess property check errors when passing extra properties?
ARemove all extra properties
BAssign the object literal to a variable first
CUse a different language
DIgnore TypeScript errors
Does TypeScript check excess properties when assigning variables to variables?
ANo, it uses structural compatibility
BOnly if variables have different names
CYes, always
DOnly in strict mode
Explain the difference between excess property checks and structural compatibility in TypeScript.
Think about when TypeScript warns about extra properties and when it allows them.
You got /4 concepts.
    How can you handle a situation where an object literal has extra properties but you want to assign it to a type without errors?
    Consider ways to bypass excess property checks safely.
    You got /4 concepts.