Podcast
Questions and Answers
Quel mot-clé est utilisé pour déclarer une variable dans l'exemple donné ?
Quel mot-clé est utilisé pour déclarer une variable dans l'exemple donné ?
Quelle version de JavaScript est spécifiée pour la compilation par défaut dans TypeScript ?
Quelle version de JavaScript est spécifiée pour la compilation par défaut dans TypeScript ?
Quel type de données est inclus dans TypeScript mais pas dans JavaScript ?
Quel type de données est inclus dans TypeScript mais pas dans JavaScript ?
Quelle affirmation concernant le type 'any' est correcte ?
Quelle affirmation concernant le type 'any' est correcte ?
Signup and view all the answers
Quelle option spécifie le répertoire où le fichier compilé sera stocké dans la configuration ?
Quelle option spécifie le répertoire où le fichier compilé sera stocké dans la configuration ?
Signup and view all the answers
Que représente un enum dans les langages de programmation comme C# ou Java?
Que représente un enum dans les langages de programmation comme C# ou Java?
Signup and view all the answers
Quel est l'avantage principal des enums par rapport aux constantes numériques?
Quel est l'avantage principal des enums par rapport aux constantes numériques?
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;'?
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;'?
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?
Quel est le résultat de la déclaration 'let strLength: number = (someValue as string).length;' si 'someValue' est une chaîne?
Signup and view all the answers
Que permet la surcharge de fonction dans TypeScript?
Que permet la surcharge de fonction dans TypeScript?
Signup and view all the answers
Que représente le type 'void' dans une fonction?
Que représente le type 'void' dans une fonction?
Signup and view all the answers
Les enums lancent une exception s'ils sont utilisés avec des valeurs non numériques.
Les enums lancent une exception s'ils sont utilisés avec des valeurs non numériques.
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?
Quelle est la bonne façon de déclarer une fonction qui retourne le résultat d'une addition de deux nombres en TypeScript?
Signup and view all the answers
Quel est un exemple de déclaration d'un enum de chaînes?
Quel est un exemple de déclaration d'un enum de chaînes?
Signup and view all the answers
Que permet d'activer la configuration 'noImplicitReturns' dans le fichier tsconfig.json?
Que permet d'activer la configuration 'noImplicitReturns' dans le fichier tsconfig.json?
Signup and view all the answers
Quelle valeur peut être assignée à une variable de type 'void'?
Quelle valeur peut être assignée à une variable de type 'void'?
Signup and view all the answers
Quelle syntaxe est utilisée pour définir un type de fonction dans TypeScript?
Quelle syntaxe est utilisée pour définir un type de fonction dans TypeScript?
Signup and view all the answers
Quand utiliserait-on le type 'optional' dans une énumération?
Quand utiliserait-on le type 'optional' dans une énumération?
Signup and view all the answers
Quel est le risque principal de l'utilisation du type 'any' en TypeScript ?
Quel est le risque principal de l'utilisation du type 'any' en TypeScript ?
Signup and view all the answers
Quelle déclaration est correcte pour un tableau contenant uniquement des nombres ?
Quelle déclaration est correcte pour un tableau contenant uniquement des nombres ?
Signup and view all the answers
Comment peut-on déclarer un tuple contenant une chaîne et un nombre ?
Comment peut-on déclarer un tuple contenant une chaîne et un nombre ?
Signup and view all the answers
Quel type de valeur peut être incorrectement assigné à un tuple spécifié comme [string, number] ?
Quel type de valeur peut être incorrectement assigné à un tuple spécifié comme [string, number] ?
Signup and view all the answers
Quel est l'effet de déclarer un tableau vide en TypeScript ?
Quel est l'effet de déclarer un tableau vide en TypeScript ?
Signup and view all the answers
Pourquoi les tuples sont-ils considérés comme utiles avec deux éléments ?
Pourquoi les tuples sont-ils considérés comme utiles avec deux éléments ?
Signup and view all the answers
Comment peut-on indiquer qu'un élément d'un tuple est optionnel ?
Comment peut-on indiquer qu'un élément d'un tuple est optionnel ?
Signup and view all the answers
Quel impact a la configuration 'noImplicitAny' dans le fichier tsconfig ?
Quel impact a la configuration 'noImplicitAny' dans le fichier tsconfig ?
Signup and view all the answers
Quelle déclaration est correcte concernant les types null et undefined ?
Quelle déclaration est correcte concernant les types null et undefined ?
Signup and view all the answers
Quel est le rôle de l'opérateur d'assertion non-nulle (!) en TypeScript ?
Quel est le rôle de l'opérateur d'assertion non-nulle (!) en TypeScript ?
Signup and view all the answers
Quel est l'effet d'une assertion de type en TypeScript ?
Quel est l'effet d'une assertion de type en TypeScript ?
Signup and view all the answers
Quel type d'erreur obtiendrait-on en essayant d'assigner une valeur à une variable de type null ?
Quel type d'erreur obtiendrait-on en essayant d'assigner une valeur à une variable de type null ?
Signup and view all the answers
Quelle affirmation est vraie concernant la valeur d'une variable de type undefined ?
Quelle affirmation est vraie concernant la valeur d'une variable de type undefined ?
Signup and view all the answers
Quelle serait la conséquence d'utiliser l'opérateur d'assertion non-nulle de manière incorrecte ?
Quelle serait la conséquence d'utiliser l'opérateur d'assertion non-nulle de manière incorrecte ?
Signup and view all the answers
L'assignation de quelle valeur à une variable de type undefined lèvera une erreur ?
L'assignation de quelle valeur à une variable de type undefined lèvera une erreur ?
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 ?
Pourquoi les types null et undefined n'ont-ils pas d'application pratique dans des variables de type primitif ?
Signup and view all the answers
Comment une classe est-elle définie en TypeScript?
Comment une classe est-elle définie en TypeScript?
Signup and view all the answers
Quel est le rôle du constructeur dans une classe en TypeScript?
Quel est le rôle du constructeur dans une classe en TypeScript?
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?
Quel est l'effet de l'utilisation de l'accès 'private' pour une propriété d'une classe?
Signup and view all the answers
Qu'est-ce qui est vrai concernant le 'super()' dans les classes dérivées?
Qu'est-ce qui est vrai concernant le 'super()' dans les classes dérivées?
Signup and view all the answers
Comment est-il possible d'avoir plusieurs définitions de constructeur dans une classe?
Comment est-il possible d'avoir plusieurs définitions de constructeur dans une classe?
Signup and view all the answers
Quelles sont les trois modificateurs d'accès en TypeScript?
Quelles sont les trois modificateurs d'accès en TypeScript?
Signup and view all the answers
Dans l'exemple suivant, quel est le problème avec la classe 'BadGreeter'? class BadGreeter { name: string; }
Dans l'exemple suivant, quel est le problème avec la classe 'BadGreeter'? class BadGreeter { name: string; }
Signup and view all the answers
Que se passe-t-il si vous n'appelez pas 'super()' dans un constructeur dérivé?
Que se passe-t-il si vous n'appelez pas 'super()' dans un constructeur dérivé?
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 commandtsc --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
andundefined
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 potentiallynull
orundefined
values.
Non-Null Assertion
- The
!
operator asserts that a variable is notnull
orundefined
. - Use with caution as it can lead to runtime errors in unexpected situations.
Type Assertions
- Use angle brackets (
<type>variable
) or theas
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 oftype
. 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.
Related Documents
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.