web-dev-qa-db-fra.com

Quelle est la norme d'utilisation des guillemets dans Typescript?

Je remarque dans ma candidature que TsLint suggère:

static $inject = [
        '$http',
        '$q',
        '$scope',
        'configService',
        'stateService',
        'utilityService'
    ];

pour ce qui précède que:

Message 2   TsLint: ' should be "

Est-ce une norme suggérée maintenant pour TypeScript?

56
Samantha J T Star

Il n'y a pas de norme particulière pour utiliser des guillemets simples pour les caractères et des guillemets doubles pour chaîne, mais il est suggéré d'utiliser des guillemets doubles pour les chaînes et vice versa.

De la docs :

Tout comme JavaScript, TypeScript utilise également les guillemets doubles (") ou les guillemets simples (') pour entourer les données de chaîne.

12
Rahul Tripathi

Ce fut le premier résultat dans ma recherche google pour: "guillemets simples vs guillemets TypeScript."

Considérant que la réponse acceptée est un peu ancienne (mais reste valable de la documentation), j'aimerais ajouter cette citation de: https://github.com/Microsoft/TypeScript/wiki/Coding-guidelines mis à jour le 27 novembre 2015:

Utilisez des guillemets doubles pour les chaînes.

Accordé "le code est plus ce que vous appelez des" directives "que des règles réelles." :)

39
crowebird

J'irais avec des guillemets simples. Je suis plutôt d'accord avec ce type :

  • Préférez les guillemets simples (') sauf en cas d'échappée.

Raison: plusieurs équipes JavaScript le font (par exemple, airbnb , standard, npm , nœud , google/angular , - facebook/react ). Il est plus facile de taper (pas de décalage sur la plupart des claviers). l'équipe de Prettier recommande également les guillemets simples

De plus, même les modèles dotnet new Utilisent des guillemets simples pour les applications Angular.

29
Saša Ćetković

Le document sur les normes de codage, lié par @crowebird, est un bon document: https://github.com/Microsoft/TypeScript/wiki/Coding-guidelines

J'aime toutes les directives, à l'exception des guillemets doubles, lorsqu'il s'agit d'utiliser TypeScript avec Angular 2.

Cette question ne concerne pas TypeScript avec Angular 2, mais les lecteurs peuvent être Angular 2 utilisateurs. L'utilisation de guillemets simples facilite la lecture lors du balisage de chaînes html dans le TypeScript.

Prenons l'exemple suivant:

@Component({
    ...,
    template: '<div class="some-class-name"></div>'
})

Mais si vous utilisez des guillemets doubles, vous devez échapper à ces guillemets:

@Component({
    ...,
    template: "<div class=\"some-class-name\"></div>"
})

La première option est préférable. La plupart des Angular 2 démos utilisent des guillemets simples.

11
mkaj

Comme il semble qu'il n'y ait pas de réponse définitive, qu'est-ce qui se passe d'une langue à l'autre?

Bash/Powershell/Ruby : "active les séquences d’interpolation et d’échappement. 'Signifie que la chaîne est exactement telle qu’elle a été typée.

C-style langages (Java, C #, C++, etc.): "est une chaîne while 'pour les caractères simples.

Python/Javascript : pas de différence. Si une chaîne doit contenir ", vous pouvez la délimiter avec" et vice versa.

JSON : guillemets doubles uniquement. C'est l'argument d'inclinaison.

Dans toutes les langues, les guillemets simples impliquent un manque de séquences d'échappement et d'interpolation.

TypeScript a une compatibilité ascendante pour les chaînes `(en arrière), ma préférence va donc à tiliser" (guillemet double) pour les chaînes non échappées, généralement sans espace blanc et dans le jeu de caractères suivant:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789- ou [\w\d-]* dans de nombreux dialectes regex. Cela signifie que vous pouvez copier les littéraux d'objet pasta dans JSON et inversement. Très utile en pratique pour de petites enquêtes, des tests, etc.

Pour tout le reste, `(points arrière) car cela réduit le nombre de séquences d'échappement et permet l'interpolation.

Remarque: je ne suis pas un partisan de JSON, cela semble tout simplement incontournable de nos jours;)

2
Seth

Si vous allez intégrer des modèles de chaîne, cochez les cases suivantes:

`

Tout droit de ici

const lyrics = 'Never gonna give you up';
const html = `<div>${lyrics}</div>`;

Personnellement, je préfère les guillemets simples parce que '' contre "" est légèrement moins déroutant pour les yeux lorsqu'il est question de constante de chaîne vide.

Mais vous pouvez remplacer cette règle si vous souhaitez intégrer un seul devis. Utilisez les guillemets doubles pour envelopper les choses afin d’éviter les maux de tête.

La flexibilité est la clé.

1
JGFMK