Always check for null or undefined values before performing operations on objects, accessing properties, or calling methods. This prevents runtime errors that occur when attempting to operate on null/undefined values.
When working with potentially nullable objects, add explicit null checks before accessing properties or calling methods:
// Before - can throw if response is null
if (typeof response === "object" && ReflectHas(response, "then")) {
// ...
}
// After - safe with null check
if (response !== null && typeof response === "object" && ReflectHas(response, "then")) {
// ...
}
Similarly, check for property existence before using them:
// Check if optional properties exist before use
if (span) {
span.recordException(err);
if (err.name) { // Check err.name exists before using
span.setAttribute("error.type", err.name);
}
}
This pattern is especially important when calling methods like Reflect.has()
, Object.keys()
, or accessing properties on objects that might be null or undefined. The small overhead of these checks prevents difficult-to-debug runtime errors.
Enter the URL of a public GitHub repository