TypeScript: error TS2531: Object is possibly 'null'.
You used a value that can be null without checking it first (strictNullChecks).
error TS2531: Object is possibly 'null'.TS2531: Object is possibly 'null'.Object is possibly 'null'. ts(2531)error TS2531: Object is possibly 'null' Meaning
Narrow before use: if (el) { el.value }, optional chaining el?.value, nullish defaults el ?? fallback, or a non-null assertion el! only when you're certain. Typical with document.getElementById, querySelector, ref.current, Array.find (undefined).
Common causes
- DOM queries returning
T | null - React
useRef<T>(null)current - Map/Array lookups
- Optional API data
- Variables assigned later
⚡ Quick fix
const el = document.getElementById("x"); if (!el) return;- Optional chaining
el?.value - Non-null assertion
el!only when guaranteed
Detailed fix by platform
TypeScript
const input = document.querySelector<HTMLInputElement>("#name"); if (input) input.value = "A";
How to diagnose
- Value — Can be null?
- Narrow — Checked?
- Assertion — Safe?
🔧 Still not fixed?
Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:
Similar errors
- Cannot find module './App.vue' or its corresponding type declarations TypeScript: error TS2307: Cannot find module './App.vue' or its corresponding type declarations.
- TS1005: ';' expected / ',' expected (syntax error) TypeScript: error TS1005: ';' expected.
- TS1128: Declaration or statement expected TypeScript: error TS1128: Declaration or statement expected.
Most viewed in TypeScript
- TS2564 TS2564: Property 'x' has no initializer and is not definitely assigned in the constructor
- TS7006 TS7006: Parameter 'x' implicitly has an 'any' type
- TS2366: Function lacks ending return statement TypeScript: error TS2366: Function lacks ending return statement and return type does not include 'undefined'.
Other ways to find it
Where this error sits
Origin: On your device. Errors that are often confused with or caused by this one (click to open):
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
💬 What worked for others
No tips yet — did something else fix this for you?
Share what worked for you
Tips are checked by an editor before they appear. Links are removed.
Report a correction or suggest an improvement
Last updated 5 Nov 2026