npm package: @monorepo-essentials/typescript-config
Description: A collection of configurations for TypeScript
Latest version: 1.0.0

# TypeScript Config - Configurations pour TypeScript

<!-- LOGO -->
<img src="./resources/images/typescript-logo.svg" alt="TypeScript logo" width="160" height="160" style="margin: 0 16px" align="right" />

<!-- INTRODUCTION -->
Ce projet contient des configurations pour TypeScript. Pour information, TypeScript est un langage de développement qui reprend la syntaxe du JavaScript en y ajoutant un typage statique.

<!-- BADGES -->

[![outillage](../../../resources/images/badges/outillage.svg)](#)
[![libraries-dev](../../../resources/images/badges/type-dev-library.svg)](./projects/libraries-dev/)
[![typescript](../../../resources/images/badges/typescript.svg)](https://www.typescriptlang.org/)

### Table des matières

- [🏁 Getting started](#-getting-started)
- [🔎 Utilisation](#-utilisation)
- [⚙️ Configuration](#-configuration)
- [➕ Pour plus d'informations](#-pour-plus-dinformations)

## 🏁 Getting started

Pour installer ce projet, il suffit d'installer les dépendances ; aucun build n'est nécessaire :

```shell
$ yarn install
```

## 🔎 Utilisation

TypeScript est nativement supporté par l'IDE [s'il est bien configuré](#-configuration).

Pour utiliser TypeScript via le terminal, il faut utiliser les commandes `check` et `build` :

```shell
$ make check                          # | Lance toutes les étapes de check pour le projet
$ make check-tsc                      # | Lance la vérification des types pour le projet

$ make build                          # | Lance l'étape de build pour le projet
$ make build-tsc                      # | Lance l'étape de build avec TSC pour le projet
```

Bien sûr, ces commandes ont leurs equivalents pour fonctionner en _watch mode_ :

```shell
$ make check-watch                    # | Lance toutes les étapes de check pour le projet à chaque changement dans les fichiers sources
$ make check-tesc-watch               # | Lance la vérification des types pour le projet à chaque changement dans les fichiers sources


$ make build                          # | Lance l'étape de build pour le projet à chaque changement dans les fichiers sources
$ make build-tsc                      # | Lance l'étape de build avec TSC pour le projet à chaque changement dans les fichiers sources
```

## ⚙ Configuration

Pour configurer l'IDE à utiliser TypeScript, assurez-vous dans un premier temps que l'inspection des types est activée dans `Editor > Inspections > TypeScript` :

<div align="center" style="text-align: center;">
    <img src="./resources/images/ide-configuration/editor-inspections-typescript.png" width="750">
</div>

De même, assurez-vous que la bonne instance de TypeScript est utilisée par l'IDE. Pour cela, rendez-vous dans `Languages & Frameworks > TypeScript` :

<div align="center" style="text-align: center;">
    <img src="./resources/images/ide-configuration/languages-frameworks-typescript.png" width="750">
</div>

### Installation dans les projets

Pour utiliser TypeScript dans un projet, il faut d'abord installer les dépendances :

```shell
$ yarn add -D typescript @c3-monorepo/typescript-config
```

Ensuite, il faut créer un fichier `tsconfig.json` pour le projet :

```json
{
    "extends": "@c3-monorepo/typescript-config/src/tsconfig.json",
    "compilerOptions": {
        "rootDir": ".",
        "outDir": ".dist"
    },
    "include": [
        "src/*",
        "src/**/*"
    ],
    "exclude": [
        "node_modules"
    ]
}
```

On peut également créer un fichier `tsconfig.build.json` qui servira lors de l'étape de build :

```json
{
    "extends": "./tsconfig.json",
    "exclude": [
        "src/*.spec.ts",
        "src/**/*.spec.ts",
        "node_modules"
    ]
}
```

## ➕ Pour plus d'informations

Plus d'informations sont disponibles dans la [documentation de TypeScript](https://www.typescriptlang.org/docs/).