Menu

1 / 2

PHP Magic Methods to TypeScript Proxy: 5 Idioms That Translate

DEV Community·Gabriel Anhaia·6 months ago
#ojoo38Ym
Reading 0:00
15s threshold

Book: PHP to TypeScript — A Bridge for Modern PHP 8+ Developers

Also by me: The TypeScript Library — the 5-book collection

My project: Hermes IDE | GitHub — an IDE for developers who ship with Claude Code and other AI coding tools

Me: xgabriel.com | GitHub

A PHP developer opens a TypeScript codebase, scrolls to the ORM layer, and gets stuck on a familiar question: how does $user->name work in TypeScript when the property does not exist on the class?

In PHP, the answer is one of the magic methods: __get , __set , __call , __isset , __unset . The trapdoor under property access. The framework defines them once on the model base class, and the rest of the app reads $user->name , $user->save() , $user->orders without anyone declaring a property or method.

TypeScript has the same trapdoor. It is called Proxy , has been in the language since ES2015, and most TypeScript devs ignore it because the type system fights you on the way out.…

Continue reading — create a free account

Join HashtagPLUS to read full articles, follow hashtags, vote, and join the conversation.