PHPackages                             vinatis/typescript-generator - 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. vinatis/typescript-generator

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

vinatis/typescript-generator
============================

Bundle to generate TypeScript elements based on a Symfony project

v2.0.4(3mo ago)01.4k↓11.4%EUPL-1.1PHPPHP ^8.2

Since Mar 19Pushed 3mo agoCompare

[ Source](https://github.com/vinatis/typescript-generator-bundle)[ Packagist](https://packagist.org/packages/vinatis/typescript-generator)[ RSS](/packages/vinatis-typescript-generator/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependencies (8)Versions (8)Used By (0)

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

[](#typescriptgeneratorbundle)

Ce bundle génère des éléments TypeScript basés sur un projet Symfony.

> PHP *^8.4* — Symfony *^7.4*

Installation
============

[](#installation)

Ce bundle est disponible sur [Packagist](https://packagist.org/packages/vinatis/typescript-generator) :

```
composer require vinatis/typescript-generator
```

Commandes disponibles
=====================

[](#commandes-disponibles)

- [Générer des interfaces](#g%C3%A9n%C3%A9rer-des-interfaces)
- [Générer un package](#g%C3%A9n%C3%A9rer-un-package)
- [Tout générer](#tout-g%C3%A9n%C3%A9rer)

---

Générer des interfaces
----------------------

[](#générer-des-interfaces)

Cette fonctionnalité permet de créer des interfaces TypeScript à partir de classes PHP conçues pour fonctionner comme des entités Doctrine.

Les interfaces sont générées en se basant sur les propriétés de ces classes. Il existe 3 façons d'obtenir le type de chaque propriété :

- Typage fort de la propriété (disponible depuis PHP 7.4)
    - > `private int $id;`
- Typage dans le commentaire de la propriété
    - > `@var int`
- Typage via les annotations ou attributs Doctrine
    - > `@ORM\Column(type="integer")` ou `#[ORM\Column(type: 'integer')]`

Si aucun type n'est trouvé, l'interface sera générée avec le type `unknown`.

---

La génération des interfaces s'effectue avec la commande suivante :

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

Ce commande accepte 2 paramètres, dont un obligatoire et un optionnel.

**output-dir** *(Obligatoire)* : Répertoire où les interfaces seront créées. **entities-dir** *(Optionnel)* : Répertoire des entités à utiliser pour générer les interfaces. Par défaut : `src/Entity/`.

Pour qu'une entité soit convertie en interface, ajoutez l'attribut `#[TypeScriptMe]` dans la définition de la classe :

```
