Skip to content

Commit b3d4f96

Browse files
Merge pull request #76 from Haeresis/typescript
Traduction de `typescript.md`
2 parents 864ee30 + 2d7b481 commit b3d4f96

File tree

1 file changed

+36
-36
lines changed

1 file changed

+36
-36
lines changed

src/v2/guide/typescript.md

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,28 @@
11
---
2-
title: TypeScript Support (En)
2+
title: Support de TypeScript
33
type: guide
44
order: 25
55
---
66

7-
## Important 2.2 Change Notice for TS + webpack 2 users
7+
## Changements importants dans la 2.2 pour les utilisateurs TS + webpack 2
88

9-
<p class="tip">**Cette page est en cours de traduction française. Revenez une autre fois pour lire une traduction achevée ou [participez à la traduction française ici](https://github.com/vuejs-fr/vuejs.org).**</p><p>In Vue 2.2 we introduced dist files exposed as ES modules, which will be used by default by webpack 2. Unfortunately, this introduced an unintentional breaking change because with TypeScript + webpack 2, `import Vue = require('vue')` will now return a synthetic ES module object instead of Vue itself.</p>
9+
Dans Vue 2.2 nous avons introduit des fichiers de distribution en tant que modules ES, qui seront utilisés par défaut par webpack 2. Malheureusement, cela a introduit un changement de non retrocompatiblilité non souhaité car avec TypeScript + webpack 2, `import Vue = require('vue')` retourne maintenant un objet module ES synthétique au lieu de Vue lui-même.
1010

11-
We plan to move all official declarations to use ES-style exports in the future. Please see [Recommended Configuration](#Recommended-Configuration) below on a future-proof setup.
11+
Nous avons prévu de bouger toutes les déclarations officielles d'export dans le style ES dans le futur. Veuillez consulter [la configuration recommandée](#Configuration-recommandee) ci-dessous qui est parée pour les évolutions futures.
1212

13-
## Official Declaration in NPM Packages
13+
## Déclaration officielle dans les packages npm
1414

15-
A static type system can help prevent many potential runtime errors, especially as applications grow. That's why Vue ships with [official type declarations](https://github.com/vuejs/vue/tree/dev/types) for [TypeScript](https://www.typescriptlang.org/) - not only in Vue core, but also for [vue-router](https://github.com/vuejs/vue-router/tree/dev/types) and [vuex](https://github.com/vuejs/vuex/tree/dev/types) as well.
15+
Un système de typage statique peut aider à prévenir des erreurs d'exécutions potentielles, et particulièrement quand les applications grandissent. C'est pourquoi Vue est fourni avec des déclarations de types officielles]((https://github.com/vuejs/vue/tree/dev/types) pour [TypeScript](https://www.typescriptlang.org/), et pas seulement pour le cœur de Vue, mais aussi pour [vue-router](https://github.com/vuejs/vue-router/tree/dev/types) et [vuex](https://github.com/vuejs/vuex/tree/dev/types).
1616

17-
Since these are [published on NPM](https://unpkg.com/vue/types/), and the latest TypeScript knows how to resolve type declarations in NPM packages, this means when installed via NPM, you don't need any additional tooling to use TypeScript with Vue.
17+
Puisque ceux-ci sont [publiés sur npm](https://unpkg.com/vue/types/), et que la dernière version de TypeScript sait comment résoudre des déclarations de type dans des packages npm, cela signifie qu'installer ceux-ci via npm ne requiert aucun outil supplémentaire pour utiliser TypeScript avec Vue.
1818

19-
## Recommended Configuration
19+
## Configuration recommandée
2020

2121
``` js
2222
// tsconfig.json
2323
{
2424
"compilerOptions": {
25-
// ... other options omitted
25+
// ... les autres options sont omises
2626
"allowSyntheticDefaultImports": true,
2727
"lib": [
2828
"dom",
@@ -33,39 +33,39 @@ Since these are [published on NPM](https://unpkg.com/vue/types/), and the latest
3333
}
3434
```
3535

36-
Note the `allowSyntheticDefaultImports` option allows us to use the following:
36+
Notez que l'option `allowSyntheticDefaultImports` nous permet d'utiliser l'import comme ceci :
3737

3838
``` js
3939
import Vue from 'vue'
4040
```
4141

42-
instead of:
42+
plutôt que comme cela :
4343

4444
``` js
4545
import Vue = require('vue')
4646
```
4747

48-
The former (ES module syntax) is recommended because it is consistent with recommended plain ES usage, and in the future we are planning to move all official declarations to use ES-style exports.
48+
La premiere (syntaxe de module ES) est recommandée car elle est cohérente avec les recommandations d'usage ES. Nous planifions à l'avenir de changer toutes les déclarations officielles pour utiliser les exports dans le style ES.
4949

50-
In addition, if you are using TypeScript with webpack 2, the following is also recommended:
50+
De plus, si vous utilisez TypeScript avec webpack 2, les options suivantes sont également recommandées :
5151

5252
``` js
5353
{
5454
"compilerOptions": {
55-
// ... other options omitted
55+
// ... les autres options sont omises
5656
"module": "es2015",
5757
"moduleResolution": "node"
5858
}
5959
}
6060
```
6161

62-
This tells TypeScript to leave the ES module import statements intact, which in turn allows webpack 2 to take advantage of ES-module-based tree-shaking.
62+
Ceci demande à TypeScript de laisser les instructions d'import de modules ES intactes, ce qui permet à webpack 2 de tirer parti du *tree-shaking* basé sur les modules ES.
6363

64-
See [TypeScript compiler options docs](https://www.typescriptlang.org/docs/handbook/compiler-options.html) for more details.
64+
Voir [les options de compilation TypeScript](https://www.typescriptlang.org/docs/handbook/compiler-options.html) pour plus de détails.
6565

66-
## Using Vue's Type Declarations
66+
## Utiliser la déclaration de type Vue
6767

68-
Vue's type definition exports many useful [type declarations](https://github.com/vuejs/vue/blob/dev/types/index.d.ts). For example, to annotate an exported component options object (e.g. in a `.vue` file):
68+
La définition de type de Vue exporte de nombreuses [déclarations de type](https://github.com/vuejs/vue/blob/dev/types/index.d.ts) utiles. Par exemple, pour annoter l'objet d'options d'un composant exporté (par ex. dans un fichier `.vue`) :
6969

7070
``` ts
7171
import Vue, { ComponentOptions } from 'vue'
@@ -76,14 +76,14 @@ export default {
7676
} as ComponentOptions<Vue>
7777
```
7878

79-
## Class-Style Vue Components
79+
## Composants Vue sous forme de classe
8080

81-
Vue component options can easily be annotated with types:
81+
Les options de composant Vue peuvent facilement être annotées avec des types :
8282

8383
``` ts
8484
import Vue, { ComponentOptions } from 'vue'
8585

86-
// Declare the component's type
86+
// Déclarer le type de composant
8787
interface MyComponent extends Vue {
8888
message: string
8989
onClick (): void
@@ -93,47 +93,47 @@ export default {
9393
template: '<button @click="onClick">Click!</button>',
9494
data: function () {
9595
return {
96-
message: 'Hello!'
96+
message: 'Bonjour !'
9797
}
9898
},
9999
methods: {
100100
onClick: function () {
101-
// TypeScript knows that `this` is of type MyComponent
102-
// and that `this.message` will be a string
101+
// TypeScript sait que `this` est de type `MyComponentTypeScript`
102+
// et que `this.message` sera une chaîne de caractères
103103
window.alert(this.message)
104104
}
105105
}
106-
// We need to explicitly annotate the exported options object
107-
// with the MyComponent type
106+
// Nous devons explicitement annoter l'objet d'options exporté
107+
// avec le type `MyComponent`
108108
} as ComponentOptions<MyComponent>
109109
```
110110

111-
Unfortunately, there are a few limitations here:
111+
Malheureusement, il y a quelques limitations ici :
112112

113-
- __TypeScript can't infer all types from Vue's API.__ For example, it doesn't know that the `message` property returned in our `data` function will be added to the `MyComponent` instance. That means if we assigned a number or boolean value to `message`, linters and compilers wouldn't be able to raise an error, complaining that it should be a string.
113+
- __TypeScript ne peut pas déduire tous les types de l'API de Vue__ Par exemple, il ne sait pas que la propriété `message` renvoyée dans notre fonction `data` sera ajoutée à l'instance `MyComponent`. Cela signifie que si nous attribuons un nombre ou une valeur booléenne à `message`, les linters et les compilateurs ne seraient pas en mesure d'émettre une erreur, en pointant le fait qu'il s'agit normalement d'une chaîne de caractères.
114114

115-
- Because of the previous limitation, __annotating types like this can be verbose__. The only reason we have to manually declare `message` as a string is because TypeScript can't infer the type in this case.
115+
- À cause de la précédente limitation, __l'annotation de types peut être verbeuse__. La seule raison pour laquelle nous devons déclarer manuellement `message` en tant que chaîne de caractères est parce que TypeScript ne peut pas déduire le type dans ce cas.
116116

117-
Fortunately, [vue-class-component](https://github.com/vuejs/vue-class-component) can solve both of these problems. It's an official companion library that allows you to declare components as native JavaScript classes, with a `@Component` decorator. As an example, let's rewrite the above component:
117+
Fort heureusement, [vue-class-component](https://github.com/vuejs/vue-class-component) peut résoudre ses deux problèmes. C'est une bibliothèque de support officielle qui permet de déclarer les composants comme des classes natives en JavaScript, avec le décorateur `@Component`. Pour l'exemple, ré-écrivons le composant ci-dessus :
118118

119119
``` ts
120120
import Vue from 'vue'
121121
import Component from 'vue-class-component'
122122

123-
// The @Component decorator indicates the class is a Vue component
123+
// Le décorateur @Component indique que la classe est un composant Vue
124124
@Component({
125-
// All component options are allowed in here
125+
// Toutes les options de composant sont autorisées ici.
126126
template: '<button @click="onClick">Click!</button>'
127127
})
128128
export default class MyComponent extends Vue {
129-
// Initial data can be declared as instance properties
130-
message: string = 'Hello!'
129+
// Les données initiales peuvent être déclarées comme des propriétés de l'instance
130+
message: string = 'Bonjour !'
131131

132-
// Component methods can be declared as instance methods
132+
// Les méthodes peuvent être déclarées comme des méthodes d'instance
133133
onClick (): void {
134134
window.alert(this.message)
135135
}
136136
}
137137
```
138138

139-
With this syntax alternative, our component definition is not only shorter, but TypeScript can also infer the types of `message` and `onClick` without explicit interface declarations. This strategy even allows you to handle types for computed properties, lifecycle hooks, and render functions. For full usage details, see [the vue-class-component docs](https://github.com/vuejs/vue-class-component#vue-class-component).
139+
Avec cette syntaxe alternative, nos définitions de composant ne sont pas seulement plus courtes, mais TypeScript peut aussi connaître les types de `message` et `onClick` avec des interfaces de déclarations explicites. Cette stratégie peut même vous permettre de gérer des types pour les propriétés calculées, les hooks de cycle de vie et les fonctions de rendu. Pour une utilisation plus détaillée, référez-vous à [la documentation de vue-class-component](https://github.com/vuejs/vue-class-component#vue-class-component).

0 commit comments

Comments
 (0)