TypeError — Common Causes and Fixes
Also Known As
Cannot read properties of undefined
is not a function
null is not an object
TL;DR
TypeError is thrown when a value is not of the expected type — most commonly 'Cannot read properties of undefined/null', the most frequent JavaScript runtime error.
Explanation
TypeError occurs when an operation is performed on an incompatible type. The most common: accessing a property on undefined or null. This happens when API responses have unexpected shapes, optional chaining is missing, or async data has not loaded yet. Other common TypeErrors: calling something that is not a function, accessing .length on null, passing wrong argument types. TypeScript catches most TypeErrors at compile time. In PHP, similar errors manifest as 'Call to a member function on null'.
Common Misconception
✗ TypeErrors only happen with bad code — they frequently happen with correct code that receives unexpected API responses or race conditions in async loading.
Why It Matters
TypeError from null/undefined is the most common JavaScript runtime error in production — optional chaining (?.) and nullish coalescing (??) prevent the majority of them.
Common Mistakes
- Not using optional chaining for potentially-null API response properties
- Forgetting async data is not available synchronously
- Not checking Array.isArray() before calling array methods on unknown values
Code Examples
✗ Vulnerable
const user = null;
console.log(user.name); // TypeError: Cannot read properties of null
const num = 42;
num.toUpperCase(); // TypeError: num.toUpperCase is not a function
✓ Fixed
// Optional chaining:
console.log(user?.name); // undefined, no throw
// Type check before calling:
if (typeof value === 'string') {
value.toUpperCase();
}
// TypeScript catches these at compile time
References
Tags
🤝 Adopt this term
£79/year · your link shown here
Added
22 Mar 2026
Edited
23 Mar 2026
Views
21
🤖 AI Guestbook educational data only
|
|
Last 30 days
Agents 1
No pings yesterday
Amazonbot 7
Perplexity 3
Unknown AI 2
Ahrefs 2
Majestic 1
Google 1
Also referenced
How they use it
crawler 16
Related categories
⚡
DEV INTEL
Tools & Severity
🟠 High
⚙ Fix effort: Low
⚡ Quick Fix
Enable TypeScript strict mode or use optional chaining (?.) on all property accesses from external data — catches the majority of TypeError sources at development time
📦 Applies To
javascript ES5
web
cli
🔗 Prerequisites
🔍 Detection Hints
obj.prop without null check; array.method() without Array.isArray(); response.data.field without optional chaining; no TypeScript strict mode
Auto-detectable:
✓ Yes
typescript
eslint
⚠ Related Problems
🤖 AI Agent
Confidence: High
False Positives: Medium
✗ Manual fix
Fix: Low
Context: Function
Tests: Update
CWE-704