snakedove / php-to-typescript-converter
将POPOs转换为Typescript接口。
3.1.0
2021-03-09 09:48 UTC
Requires
- php: ^7.4 || ^8.0
Requires (Dev)
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
注意事项
- 目前不支持链式接口