PHPackages                             irontec/typescript-generator-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. irontec/typescript-generator-bundle

ActiveSymfony-bundle[Database &amp; ORM](/categories/database)

irontec/typescript-generator-bundle
===================================

Bundle to generate TypeScript elements based on a Symfony project

1.1.0(7mo ago)35.0k↓25%10[1 issues](https://github.com/irontec/typescript-generator-bundle/issues)EUPL-1.1PHPPHP ^8

Since Jan 10Pushed 7mo ago14 watchersCompare

[ Source](https://github.com/irontec/typescript-generator-bundle)[ Packagist](https://packagist.org/packages/irontec/typescript-generator-bundle)[ Docs](https://www.irontec.com)[ RSS](/packages/irontec-typescript-generator-bundle/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (6)Dependencies (7)Versions (22)Used By (0)

TypeScriptGeneratorBundle
=========================

[](#typescriptgeneratorbundle)

Este bundle genera complementeos para usar en TypeScript, basados en un proyecto symfony.

Install
=======

[](#install)

```
composer require irontec/typescript-generator-bundle
```

> PHP *&gt;=8.0*

Commands
========

[](#commands)

[Generate Interface](#generate-interface)[Generate Package](#generate-package)[Generate All](#generate-all)

Generate Interface
------------------

[](#generate-interface)

Este funcionalidad consiste, en crear interfaces de TypeScript basandose clases PHP pensadas en funcionar como entidades de doctrine.

Estas interfaces se crean teniendo en cuenta las propiedades de estas clases. Como tal se tiene 3 formas de obtener el tipo de cada propiedad.

- Definición del tipado de la propiedad fuerte, disponible desde PHP 7.4
    - > private int $id;
- Definición del tipado de la propiedad, en el comentario de esta
    - > @var int
- Definición del tipado de la propiedad, en anotaciones de doctrine
    - > @ORM\\Column(type="integer")

En caso de no encontrar un tipo, se generara la interface con el tipo "**unknown**".

---

La generación de interfaces se hace ejecutando el siguiente comando:

```
bin/console typescript:generate:interface output-dir [entities-dir]
```

Este comando acepta 2 parametros, los cuales uno es obligatorio y otro opcional.

**output-dir** \[*Obligatorio*\]: Directorio donde se crearan las interfaces **entities-dir** \[*Opcional*\]: Directorio de las entidades que se usaran para generar las interfaces. Por defecto se busca en "**src/Entity/**"

Para volver una entidad en una interface, es necesario escribir el comentario "**\#TypeScriptMe**" o atributo `#[TypeScriptMe]` en la definición de la clase, Ejemplo:

```
