<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jonathan Atta</title>
    <description>The latest articles on DEV Community by Jonathan Atta (@laodeus).</description>
    <link>https://dev.to/laodeus</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1751852%2F54ebdd72-ae42-40a5-b215-1f99c146238a.png</url>
      <title>DEV Community: Jonathan Atta</title>
      <link>https://dev.to/laodeus</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/laodeus"/>
    <language>en</language>
    <item>
      <title>Les Notations de Tableaux en TypeScript</title>
      <dc:creator>Jonathan Atta</dc:creator>
      <pubDate>Mon, 05 Aug 2024 09:09:38 +0000</pubDate>
      <link>https://dev.to/laodeus/les-notations-de-tableaux-en-typescript-12e1</link>
      <guid>https://dev.to/laodeus/les-notations-de-tableaux-en-typescript-12e1</guid>
      <description>&lt;p&gt;Une des fonctionnalités de TypeScript est la capacité de définir des types pour les tableaux. Il existe plusieurs manières de définir des tableaux en TypeScript, et chacune a ses particularités.&lt;/p&gt;

&lt;h2&gt;
  
  
  Array
&lt;/h2&gt;

&lt;p&gt;La syntaxe Array utilise une notation générique pour définir un tableau dont les éléments sont du type T.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let numbers: Array&amp;lt;number&amp;gt; = [1, 2, 3];
let strings: Array&amp;lt;string&amp;gt; = ["a", "b", "c"];
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Particulièrement utile pour des types complexes ou maintenir une cohérence dans l'utilisation des génériques dans votre code.&lt;/p&gt;

&lt;h2&gt;
  
  
  T[]
&lt;/h2&gt;

&lt;p&gt;version abrégée pour déclarer des tableaux. Notation concise, utilisée surtout pour des types simples.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let numbers: number[] = [1, 2, 3];
let strings: string[] = ["a", "b", "c"];
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Privilégiée pour sa simplicité et sa facilité de lecture. Idéale pour des déclarations de tableaux simples.&lt;/p&gt;

&lt;h2&gt;
  
  
  ReadonlyArray
&lt;/h2&gt;

&lt;p&gt;Utilisé pour créer un tableau en lecture seule, empêchant toute modification après sa création, utilisez ReadonlyArray.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let readonlyNumbers: ReadonlyArray&amp;lt;number&amp;gt; = [1, 2, 3];
// readonlyNumbers.push(4); // Erreur : Property 'push' does not exist on type 'readonly number[]'.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Garantis l'immuabilité de vos données.&lt;/p&gt;

&lt;h2&gt;
  
  
  Les Tuples
&lt;/h2&gt;

&lt;p&gt;Les tuples permettent de définir un tableau avec un nombre fixe d'éléments de types spécifiques.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let tuple: [number, string] = [1, "hello"];
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Les tuples ajoutent un niveau de précision supplémentaire en &lt;br&gt;
définissant non seulement le type des éléments, mais aussi leur ordre.&lt;/p&gt;
&lt;h2&gt;
  
  
  Des Interfaces pour les Tableaux
&lt;/h2&gt;

&lt;p&gt;Vous pouvez également définir une interface pour un tableau avec des propriétés spécifiques. Cela peut être utile pour des cas d'utilisation avancés où vous avez besoin de définir des méthodes ou des propriétés supplémentaires pour vos tableaux.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;interface NumberArray {

  sum(): number;
}

let numbers: NumberArray = [1, 2, 3, 4, 5];

numbers.sum = function() {
  return this.reduce((acc, curr) =&amp;gt; acc + curr, 0);
};

console.log(numbers.sum()); // Affiche 15
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Offre une posibilitée de définir des tableaux avec des comportements personnalisés.&lt;/p&gt;

&lt;h2&gt;
  
  
  Des Tableaux avec des Types Différents
&lt;/h2&gt;

&lt;p&gt;On peut également définir des tableaux contenant plusieurs types différents. En utilisant des unions de types ou des tuples.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Avec des unions de types :
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let mixedArray: (number | string)[] = [1, "two", 3, "four"];
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Permet de déclarer un tableau qui peut contenir des éléments de plusieurs types, en utilisant le symbole | pour spécifier les types possibles.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Avec des tuples pour des types spécifiques :
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let complexTuple: [number, string, boolean] = [42, "hello", true];
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Permet de déclarer un tableau avec un nombre fixe d'éléments de types spécifiques, garantissant que chaque position dans le tableau est d'un type précis.&lt;/p&gt;

&lt;h2&gt;
  
  
  Comparaison entre Array et T[]
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Syntaxe générique (Array) :
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let list: Array&amp;lt;number&amp;gt; = [1, 2, 3];
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cette notation est plus explicite lorsque vous travaillez avec des types complexes.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Syntaxe abrégée (T[]) :
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let list: number[] = [1, 2, 3];
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cette notation est plus concise pour des types simples. Elle est plus facile à lire et à écrire.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
