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.</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</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</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.</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</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'</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</p> Signup and view all the answers

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

    <p>L'absence de valeur de retour.</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</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; }</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'}</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</p> Signup and view all the answers

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

    <p>undefined ou null.</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;</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.</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.</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];</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];</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']</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.</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.</p> Signup and view all the answers

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

    <p>Avec le symbole ?.</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.</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.</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.</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.</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.</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.</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.</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</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.</p> Signup and view all the answers

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

    <p>Avec le mot clé 'class'</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</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</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'</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</p> Signup and view all the answers

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

    <p>public, private, protected</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.</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</p> Signup and view all the answers

    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

    Use Quizgecko on...
    Browser
    Browser