snakedove/php-to-typescript-converter

将POPOs转换为Typescript接口。

3.1.0 2021-03-09 09:48 UTC

This package is auto-updated.

Last update: 2024-09-09 17:37:05 UTC


README

感谢您使用 snakedove/php-to-typescript-converter

这个仓库是做什么的?

  • 为您的symfony项目添加一个命令,用于将普通PHP对象(例如DTO)转换为Typescript接口。

使用方法

bin/console ts-create <源文件> <目标目录>为指定的源.php文件创建一个Typescript Interface.d.ts文件。

bin/console ts-create-all <源目录> <目标目录>递归地创建给定目录及其子目录中所有源.php文件的Typescript接口文件。

  • 由于TypeScript中所有类型默认可空,因此可空类型不会转换为type | null

先决条件

  • 仅适用于PHP 7.4的POPOs
  • 从Symfony 4开始支持

配置

  • 将以下配置之一添加到您的services.yaml
Snakedove\PHPToTypescriptConverter\Command\PhpToTypescriptCommand:
    tags: ['console.command']
  • 现在,当使用bin/console list时,应会显示ts-create命令。
Snakedove\PHPToTypescriptConverter\Command\PhpToTypescriptAllCommand:
    tags: ['console.command']
  • 现在,当使用bin/console list时,应会显示ts-create-all命令。

可选

  • 向命令传递参数$nameSuffix,例如 'Interface'。这会将 'Interface' 添加到所有文件和接口名称中。
  • 向命令传递参数$convertCollection。设置为false,这会将集合作为独立的InterfaceType包含。默认情况下,集合将转换为CollectionType[],且不会转换Collection类。

示例配置

Snakedove\PHPToTypescriptConverter\Command\PhpToTypescriptCommand:
    tags: ['console.command']
    arguments:
        $nameSuffix: Interface
        $convertCollections: true

注意事项

  • 目前不支持链式接口