Skip to main content
Option: transforms.optionalChainingToTernary

What it changes

Rewrites optional chains as equivalent conditional expressions while preserving short-circuiting and method receivers.

Before and after

Configuration

Run this transform by setting transforms.optionalChainingToTernary to true:
obfuscate.mjs

View the implementation

Open the TypeScript implementation on GitHub.

Read the behavior tests

Review behavior checks and cases this transform leaves alone.
Last modified on August 30, 2026