TypeScript Basics Quiz
42 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Quel mot-clé est utilisé pour déclarer une variable dans l'exemple donné ?

  • define
  • var (correct)
  • const
  • let
  • Quelle version de JavaScript est spécifiée pour la compilation par défaut dans TypeScript ?

  • es6
  • es2015
  • es2018
  • es2016 (correct)
  • Quel type de données est inclus dans TypeScript mais pas dans JavaScript ?

  • String
  • Boolean
  • Enum (correct)
  • Array
  • Quelle affirmation concernant le type 'any' est correcte ?

    <p>Il peut contenir n'importe quel type de données. (D)</p> Signup and view all the answers

    Quelle option spécifie le répertoire où le fichier compilé sera stocké dans la configuration ?

    <p>./dist (D)</p> Signup and view all the answers

    Que représente un enum dans les langages de programmation comme C# ou Java?

    <p>Un moyen d'associer un nom lisible à un numéro spécifique (B)</p> Signup and view all the answers

    Quel est l'avantage principal des enums par rapport aux constantes numériques?

    <p>Ils offrent des noms clairs pour un ensemble de valeurs numériques. (D)</p> Signup and view all the answers

    Quel sera la valeur de 'mySize' si l'on utilise l'enum suivant? enum Size {Small = 1, Medium, Large } et si on assigne 'let mySize: Size = Size.Medium;'?

    <p>2 (B)</p> Signup and view all the answers

    Quel est le résultat de la déclaration 'let strLength: number = (someValue as string).length;' si 'someValue' est une chaîne?

    <p>La longueur de 'someValue' (A)</p> Signup and view all the answers

    Que permet la surcharge de fonction dans TypeScript?

    <p>D'avoir plusieurs fonctions avec le même nom et des paramètres différents (C)</p> Signup and view all the answers

    Que représente le type 'void' dans une fonction?

    <p>L'absence de valeur de retour. (B)</p> Signup and view all the answers

    Les enums lancent une exception s'ils sont utilisés avec des valeurs non numériques.

    <p>Faux (D)</p> Signup and view all the answers

    Quelle est la bonne façon de déclarer une fonction qui retourne le résultat d'une addition de deux nombres en TypeScript?

    <p>function add(x: number, y: number): number { return x + y; } (D)</p> Signup and view all the answers

    Quel est un exemple de déclaration d'un enum de chaînes?

    <p>enum DoorStateString {Open = 'open', Closed = 'closed'} (A)</p> Signup and view all the answers

    Que permet d'activer la configuration 'noImplicitReturns' dans le fichier tsconfig.json?

    <p>D'interrompre automatiquement la fonction si aucune valeur de retour n'est spécifiée (D)</p> Signup and view all the answers

    Quelle valeur peut être assignée à une variable de type 'void'?

    <p>undefined ou null. (B)</p> Signup and view all the answers

    Quelle syntaxe est utilisée pour définir un type de fonction dans TypeScript?

    <p>let divide: (a: number, b: number) =&gt; number; (C)</p> Signup and view all the answers

    Quand utiliserait-on le type 'optional' dans une énumération?

    <p>Pour permettre à une valeur d'être indéfinie. (C)</p> Signup and view all the answers

    Quel est le risque principal de l'utilisation du type 'any' en TypeScript ?

    <p>Perdre les avantages de la vérification de type. (B)</p> Signup and view all the answers

    Quelle déclaration est correcte pour un tableau contenant uniquement des nombres ?

    <p>let list: number[] = [1, 2, 3]; (D)</p> Signup and view all the answers

    Comment peut-on déclarer un tuple contenant une chaîne et un nombre ?

    <p>let x: [string, number]; (D)</p> Signup and view all the answers

    Quel type de valeur peut être incorrectement assigné à un tuple spécifié comme [string, number] ?

    <p>[10, 'hello'] (A)</p> Signup and view all the answers

    Quel est l'effet de déclarer un tableau vide en TypeScript ?

    <p>Les éléments du tableau seront de type any. (C)</p> Signup and view all the answers

    Pourquoi les tuples sont-ils considérés comme utiles avec deux éléments ?

    <p>Ils deviennent difficiles à lire au-delà de deux éléments. (B)</p> Signup and view all the answers

    Comment peut-on indiquer qu'un élément d'un tuple est optionnel ?

    <p>Avec le symbole ?. (D)</p> Signup and view all the answers

    Quel impact a la configuration 'noImplicitAny' dans le fichier tsconfig ?

    <p>Elle permet de déclarer des variables sans type. (A)</p> Signup and view all the answers

    Quelle déclaration est correcte concernant les types null et undefined ?

    <p>Les types null et undefined sont des sous-types pour les autres types. (D)</p> Signup and view all the answers

    Quel est le rôle de l'opérateur d'assertion non-nulle (!) en TypeScript ?

    <p>Il indique au compilateur qu'une variable ne sera jamais null ou undefined. (B)</p> Signup and view all the answers

    Quel est l'effet d'une assertion de type en TypeScript ?

    <p>Elle ne fait aucune vérification spéciale mais aide le compilateur. (D)</p> Signup and view all the answers

    Quel type d'erreur obtiendrait-on en essayant d'assigner une valeur à une variable de type null ?

    <p>Une erreur de compilation se produira. (B)</p> Signup and view all the answers

    Quelle affirmation est vraie concernant la valeur d'une variable de type undefined ?

    <p>Elle doit toujours être assignée à undefined. (D)</p> Signup and view all the answers

    Quelle serait la conséquence d'utiliser l'opérateur d'assertion non-nulle de manière incorrecte ?

    <p>Une erreur d'exécution peut survenir si la valeur est null. (C)</p> Signup and view all the answers

    L'assignation de quelle valeur à une variable de type undefined lèvera une erreur ?

    <p>une chaîne de caractères (A)</p> Signup and view all the answers

    Pourquoi les types null et undefined n'ont-ils pas d'application pratique dans des variables de type primitif ?

    <p>Car ils ne peuvent contenir que null ou undefined. (A)</p> Signup and view all the answers

    Comment une classe est-elle définie en TypeScript?

    <p>Avec le mot clé 'class' (D)</p> Signup and view all the answers

    Quel est le rôle du constructeur dans une classe en TypeScript?

    <p>Pour créer des instances d'une classe (B), Pour initialiser les propriétés (D)</p> Signup and view all the answers

    Quel est l'effet de l'utilisation de l'accès 'private' pour une propriété d'une classe?

    <p>Accessible uniquement dans la classe (C)</p> Signup and view all the answers

    Qu'est-ce qui est vrai concernant le 'super()' dans les classes dérivées?

    <p>Doit être appelé avant d'accéder à 'this' (B)</p> Signup and view all the answers

    Comment est-il possible d'avoir plusieurs définitions de constructeur dans une classe?

    <p>En utilisant le surchargement du constructeur (A)</p> Signup and view all the answers

    Quelles sont les trois modificateurs d'accès en TypeScript?

    <p>public, private, protected (D)</p> Signup and view all the answers

    Dans l'exemple suivant, quel est le problème avec la classe 'BadGreeter'? class BadGreeter { name: string; }

    <p>La propriété 'name' n'est pas initialisée. (D)</p> Signup and view all the answers

    Que se passe-t-il si vous n'appelez pas 'super()' dans un constructeur dérivé?

    <p>Une erreur de compilation se produit (D)</p> Signup and view all the answers

    Flashcards

    Chaîne de caractères (String)

    C'est un type de données qui représente une séquence de caractères. Exemples: "Bonjour", "123", "true".

    Nombre (Number)

    C'est un type de données qui représente un nombre. Exemples: 10, 3.14, -5.

    Tout (Any)

    Il est utilisé pour définir un type de données qui peut prendre n'importe quelle valeur. Il contourne la vérification de type.

    Booléen (Boolean)

    C'est un type de données qui représente une valeur booléenne, qui peut être soit vraie (true) soit fausse (false).

    Signup and view all the flashcards

    Tableau (Array)

    C'est un type de données qui représente un tableau, une collection ordonnée d'éléments du même type. Exemples: [1, 2, 3], ["a", "b", "c"], [true, false].

    Signup and view all the flashcards

    Type any

    Le type any indique que TypeScript ne vérifie pas le type d'une variable.

    Signup and view all the flashcards

    Pourquoi éviter any ?

    Le type any permet de déclarer des variables dont le type n'est pas vérifié par TypeScript. Cela peut mener à des erreurs difficiles à détecter.

    Signup and view all the flashcards

    Que peut contenir une variable de type any ?

    Une variable de type any peut contenir n'importe quelle valeur, y compris des valeurs de types différents.

    Signup and view all the flashcards

    Comment utiliser any?

    Pour utiliser any, vous pouvez le déclarer explicitement ou utiliser l'option noImplicitAny dans votre fichier tsconfig.json.

    Signup and view all the flashcards

    Tableau de nombres

    Un tableau de type number[] contient uniquement des nombres.

    Signup and view all the flashcards

    Tuple

    Un tuple est un tableau dont la taille et les types d'éléments sont fixes.

    Signup and view all the flashcards

    Types d'éléments dans un tuple

    Un tuple peut contenir des éléments de types différents.

    Signup and view all the flashcards

    Éléments optionnels dans un tuple

    Les éléments d'un tuple peuvent être optionnels.

    Signup and view all the flashcards

    Type optionnel

    Un type optionnel en TypeScript est indiqué par un point d'interrogation (?) après un type de données existant. Cela signifie qu'une variable de ce type peut être soit une valeur définie, soit null ou undefined.

    Signup and view all the flashcards

    Énumération (enum)

    Une énumération (enum) permet de donner des noms clairs et significatifs à un ensemble de valeurs numériques. Chaque nom représente une valeur numérique, ce qui rend le code plus lisible.

    Signup and view all the flashcards

    Énumération const

    Une énumération const est une énumération dont les valeurs sont précalculées et remplacées par leur valeur numérique au moment de la compilation. Cela permet d'améliorer les performances car il n'y a pas d'objets créés à l'exécution.

    Signup and view all the flashcards

    Énumération de chaîne

    Une énumération de chaîne est une variante d'une énumération standard où les valeurs numériques sont remplacées par des chaînes de caractères.

    Signup and view all the flashcards

    Void

    Le type void représente l'absence de type. Il sert généralement comme type de retour pour les fonctions qui ne renvoient aucune valeur. Les variables déclarées en tant que void ne peuvent prendre que les valeurs undefined ou null.

    Signup and view all the flashcards

    Types null et undefined

    En TypeScript, les types null et undefined sont des sous-types de tous les autres types. Cela signifie que toute variable peut être affectée à null ou undefined, même si elle est typée en tant que number, string, etc.

    Signup and view all the flashcards

    Opérateur d'assertion non-null

    En TypeScript, l'opérateur d'assertion non-null (!) est utilisé pour indiquer au compilateur qu'une variable ne sera jamais null ou undefined. Cela permet de contourner les vérifications de type et d'éviter les erreurs d'exécution.

    Signup and view all the flashcards

    Conversion de type

    La conversion de type (Type Assertion) en TypeScript permet de dire au compilateur que vous savez plus sur le type d'une variable que lui. Elle est similaire au type casting dans d'autres langages, mais ne modifie pas les données. Elle sert uniquement pour la compilation.

    Signup and view all the flashcards

    Crochets angulaires en TypeScript

    Les crochets angulaires < > permettent de spécifier le type de données d'une variable lors de sa déclaration en TypeScript. Par exemple, <string> indique que la variable est une chaîne de caractères.

    Signup and view all the flashcards

    Typage des fonctions en TypeScript

    Les fonctions en TypeScript peuvent avoir des types définis pour leurs paramètres d'entrée et leur type de retour. Par exemple, function add(x: number, y: number): number indique que la fonction add prend deux nombres en entrée et retourne un nombre.

    Signup and view all the flashcards

    Surcharge de fonction en TypeScript

    La surcharge de fonction permet de définir plusieurs fonctions avec le même nom mais des paramètres d'entrée différents. Le compilateur TypeScript détermine la bonne fonction à appeler en fonction des arguments fournis à l'exécution.

    Signup and view all the flashcards

    Options de configuration tsconfig.json

    L'utilisation de noUnusedLocals, noUnusedParameters et noImplicitReturns dans le fichier tsconfig.json permet de vérifier l'utilisation des variables locales, des paramètres de fonction et des retours explicites dans le code TypeScript. Cela favorise la qualité du code et la détection d'erreurs.

    Signup and view all the flashcards

    Fonction add en TS

    La fonction add(x: number, y: number): number prend deux arguments de type nombre (x et y) et retourne un nombre (leur somme).

    Signup and view all the flashcards

    Définition de classe

    Une classe en TypeScript est définie à l'aide du mot-clé class, suivi du nom de la classe. La définition de classe peut inclure des champs (également appelés propriétés ou attributs), des méthodes (fonctions) et un constructeur.

    Signup and view all the flashcards

    Constructeur

    Un constructeur est une méthode spéciale dans un objet qui est appelée automatiquement lorsque l'objet est créé. Il est utilisé pour initialiser les propriétés de l'objet. Le constructeur est identifié par le mot-clé constructor et est généralement utilisé pour initialiser les caractéristiques d'un objet.

    Signup and view all the flashcards

    Champ

    Un champ, aussi appelé propriété ou attribut d'une classe est une variable qui représente une propriété ou une caractéristique d'un objet de cette classe. Par exemple, la classe Animal peut avoir un champ appelé "nom" qui stocke le nom de l'animal. Les champs sont définis à l'intérieur de la classe, avant le constructeur ou les autres méthodes.

    Signup and view all the flashcards

    Méthode

    Une méthode est une fonction qui est définie à l'intérieur d'une classe et représente un comportement ou une action que les objets de cette classe peuvent effectuer. Par exemple, la classe Animal peut avoir une méthode appelée "makeSound" qui émet un son correspondant à l'animal. Les méthodes définissent ce que peuvent faire les objets.

    Signup and view all the flashcards

    Classe dérivée

    Une classe dérivée est une classe qui hérite des propriétés et des méthodes d'une autre classe, appelée classe de base ou classe parent. Cela permet de réutiliser le code et de créer des hiérarchies d'objets.

    Signup and view all the flashcards

    Le mot-clé super

    Le mot-clé super est utilisé dans une classe dérivée pour accéder aux membres de la classe de base. Il s'agit d'appeler le constructeur de la classe parent afin d'initialiser ses attributs.

    Signup and view all the flashcards

    Modificateur d'accès public

    Le mot-clé public indique que les membres (propriétés ou méthodes) sont accessibles depuis n'importe quelle partie du code. Ils sont visibles et peuvent être utilisés par tous.

    Signup and view all the flashcards

    Modificateur d'accès protected

    Le mot-clé protected indique que les membres (propriétés ou méthodes) sont accessibles uniquement depuis la classe elle-même et ses classes dérivées (héritées). Ils ne sont pas visibles de l'extérieur de la classe et de ses descendants.

    Signup and view all the flashcards

    Study Notes

    Introduction to TypeScript

    • TypeScript is a superset of JavaScript, adding optional type annotations and features like interfaces, classes, and namespaces.
    • JavaScript is a dynamically-typed language, primarily used for client-side web development, and can also be used for server-side development.
    • TypeScript offers optional type annotations, allowing you to define the data types of variables, parameters, and return values, helping catch type-related errors during compilation.
    • TypeScript extends JavaScript syntax with features like interfaces, classes, and namespaces, creating a more robust structure for large-scale projects.

    Core Differences

    • Types: TypeScript uses optional type annotations, while JavaScript is dynamically-typed.
    • Syntax: TypeScript extends JavaScript syntax with interfaces, classes, and namespaces.
    • Tooling: TypeScript provides better tooling support, including better editor integration, type checking, and code refactoring.
    • Backward Compatibility: TypeScript is fully compatible with existing JavaScript code

    Pros and Cons

    • Pros: More robust code, easier debugging (early error detection), improved code readability, and wider popularity.
    • Cons: Requires a compilation step (transpilation), more features to learn, and not strictly static typing (some flexibility from any type).

    Setup

    • To use the TypeScript compiler, install it globally using npm i -g typescript.
    • Create TypeScript files with a .ts extension. Any valid JavaScript code is also valid TypeScript code.
    • Compile the code using tsc index.ts in your command line. This generates a JavaScript version of your TypeScript file.

    Syntax

    • TypeScript allows annotating variables with their specific types.
    • For example: let age: number = 20;
    • Compiling TypeScript code yields JavaScript code using variables defined with var.

    Configuration

    • You create a configuration file (tsconfig.json) using the command tsc --init.
    • This file allows controlling various aspects of the compilation process.
    • The target setting specifies the JavaScript version TypeScript should compile to (e.g., target: "es2016").

    Basic TS Types

    • TypeScript supports fundamental data types similar to JavaScript (Boolean, Number, String) along with arrays, tuples, enums, void, null, and undefined.
    • Using the any type can negate type safety benefits.

    Built-in Types

    • TypeScript allows annotating variables with types explicitly.
    • If a variable is not initialized, its default type is any.

    "any" type

    • Using any bypasses type checking.
    • Best practice: avoid using any whenever possible.

    Arrays

    • TypeScript supports arrays with specific types (e.g., number[], Array<number>).
    • Empty arrays default to the any type, which is less type-safe.

    Tuples

    • Tuples allow arrays with fixed lengths and types, e.g. let x: [string, number] = ["hello", 10];
    • Tuple elements are accessed by their index, like any array

    Enums

    • Enums define sets of named constants.
    • Example: enum Size { Small, Medium, Large }.

    String Enums

    • Another enum variant using string constants.
    • e.g enum DoorStateString {Open = "open", Closed = "closed", Ajar = "ajar"}

    Void

    • Void indicates a function that doesn't return a value.

    Null & Undefined

    • null and undefined types in TypeScript often correspond to their JavaScript counterparts.
    • Avoid using them excessively for type safety.
    • The optional chaining operator (?.) is useful for safely accessing properties of potentially null or undefined values.

    Non-Null Assertion

    • The ! operator asserts that a variable is not null or undefined.
    • Use with caution as it can lead to runtime errors in unexpected situations.

    Type Assertions

    • Use angle brackets (<type>variable) or the as keyword to manually specify the type of a variable.

    Functions

    • Functions in TypeScript can specify input and return types, enhancing type safety.

    Function Overloading

    • TypeScript allows defining multiple functions with the same name that accept different parameter types.
    • TypeScript then uses these function signatures to determine the best matching implementation based on the data types of the arguments.

    Objects

    • TypeScript supports defining objects with specific property types using type declarations or interfaces.
    • Read-only properties are useful to protect data integrity.

    Advanced Types

    • TypeScript includes: type aliases, unions, intersections, type narrowing, nullable types, the unknown type.

    Interfaces

    • TypeScript Interfaces allow defining a contract/structure for an object by specifying the types of its properties.
    • Interfaces are like type declarations, but the keyword is interface instead of type. You can have interface inheritance, unlike with types

    Interfaces vs Type Aliases

    • Interfaces can be extended; type aliases cannot (which is the key difference).

    Classes

    • TypeScript Classes provide blueprints for creating objects, bundling data and methods.
    • Use the class keyword for declaration.

    Constructor Overloading

    • In a class, similar to functions, you can have multiple implementations of a constructor with different parameter types

    Access Modifiers

    • public (default): accessible everywhere.
    • private: accessible only within the same class.
    • protected: accessible in the class and any subclasses.

    Abstract Classes

    • Abstract classes cannot be instantiated directly.
    • Abstract methods have no implementation, forcing subclasses to provide them.

    Inheritance vs Polymorphism

    • Inheritance: Subclasses inherit properties and methods from parent classes.
    • Polymorphism: Objects of different classes act as members of a common class that has an interface/inheritance hierarchy, allowing for flexible behavior.

    Generics

    • TypeScript generics allow code to work with different data types by using placeholders.
    • The data type is specified during the use of the generic, not in the declaration.

    TP: Book Reading Tracker

    • Describes a book reading tracker application that uses TypeScript, HTML, and potentially MongoDB for data storage, to manage and track book reading progress.

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Related Documents

    TypeScript Slides PDF

    Description

    Testez vos connaissances sur les bases de TypeScript avec ce quiz. Répondez à des questions sur la déclaration de variables, les enums et les différences entre TypeScript et JavaScript. Idéal pour les développeurs souhaitant renforcer leurs compétences en programmation.

    More Like This

    Test Your TypeScript Skills
    16 questions
    Top Programming Languages 2023 Quiz
    4 questions
    Einführung in TypeScript und JavaScript
    8 questions
    Use Quizgecko on...
    Browser
    Browser