uuid: - value: 5af463dd-91dc-45a4-a0bc-58212e30d402 langcode: - value: en type: - target_id: daily_email target_type: node_type target_uuid: 8bde1f2f-eef9-4f2d-ae9c-96921f8193d7 revision_timestamp: - value: '2025-05-11T09:00:02+00:00' revision_uid: - target_type: user target_uuid: b8966985-d4b2-42a7-a319-2e94ccfbb849 revision_log: { } status: - value: true uid: - target_type: user target_uuid: b8966985-d4b2-42a7-a319-2e94ccfbb849 title: - value: 'TypeScript for PHP' created: - value: '2025-01-18T00:00:00+00:00' changed: - value: '2025-05-11T09:00:02+00:00' promote: - value: false sticky: - value: false default_langcode: - value: true revision_translation_affected: - value: true path: - alias: /daily/2025/01/18/typescript-php langcode: en body: - value: |

During one of Nuno Maduro's live streams, he was speaking about static analysis and PHPStan when either he or someone in the chat said "PHPStan is TypeScript for PHP".

I thought this was an interesting comparison.

PHP has types and type checking - the same as TypeScript - but it's only performed when the code is executed.

TypeScript's build step will run its type checks and identify any errors when compiling the application.

Static analysis tools do the same for PHP, allowing you to execute the type checks without executing the code.

The means you can do it from the command line, in an IDE or text editor, or in a CI pipeline.

Nuno's follow-up YouTube video is a great one to watch if you want to see static analysis and PHPStan in action!

format: full_html processed: |

During one of Nuno Maduro's live streams, he was speaking about static analysis and PHPStan when either he or someone in the chat said "PHPStan is TypeScript for PHP".

I thought this was an interesting comparison.

PHP has types and type checking - the same as TypeScript - but it's only performed when the code is executed.

TypeScript's build step will run its type checks and identify any errors when compiling the application.

Static analysis tools do the same for PHP, allowing you to execute the type checks without executing the code.

The means you can do it from the command line, in an IDE or text editor, or in a CI pipeline.

Nuno's follow-up YouTube video is a great one to watch if you want to see static analysis and PHPStan in action!

summary: null field_daily_email_cta: { }