spatie / laravel-typescript-transformer
将 PHP 结构转换为 TypeScript 类型
2.4.1
2024-05-03 08:00 UTC
Requires
- php: ^8.1
- illuminate/console: ^8.83|^9.30|^10.0|^11.0
- spatie/laravel-package-tools: ^1.12
- spatie/typescript-transformer: ^2.1.13
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- mockery/mockery: ^1.4
- nesbot/carbon: ^2.63
- orchestra/testbench: ^6.0|^7.0|^8.0|^9.0
- pestphp/pest: ^1.22|^2.0
- phpunit/phpunit: ^9.0|^10.0|^11.0
- spatie/data-transfer-object: ^2.0
- spatie/enum: ^3.0
- spatie/laravel-model-states: ^1.6|^2.0
- spatie/pest-plugin-snapshots: ^1.1|^2.0
- spatie/phpunit-snapshot-assertions: ^4.2|^5.0
- spatie/temporary-directory: ^1.2
README
将 PHP 类型转换为 TypeScript
是否总是希望在没有大量代码重复的情况下,在 PHP 和 TypeScript 中拥有类型安全?那么您会喜欢这个包!比如说,您有一个枚举
class Languages extends Enum { const TYPESCRIPT = 'typescript'; const PHP = 'php'; }
如果您能有一个像这样的自动生成的 TypeScript 定义,那岂不是很酷?
export type Languages = 'typescript' | 'php';
这个包会自动为您生成这样的定义,您需要做的只是添加这个注释
/** @typescript **/ class Languages extends Enum { const TYPESCRIPT = 'typescript'; const PHP = 'php'; }
您甚至可以更进一步,从类生成 TypeScript
/** @typescript */ class User { public int $id; public string $name; public ?string $address; }
这将被转换为
export type User = { id: number; name: string; address: string | null; }
想了解更多?您可以在这里找到文档 这里。
测试
composer test
变更日志
请参阅 CHANGELOG 了解最近更改的详细信息。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全
如果您发现了关于安全的 bug,请通过 [email protected] 发送邮件,而不是使用问题跟踪器。
致谢
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件。