typescript - Vad är standarden eller bästa praxis när det gäller citattecken på JavaScript-nycklar?


Jag har gått igenom flera frågor som denna för att se om det finns en standardpraxis/bästa praxis för om man ska sätta citattecken kring nycklar i JavaScript eller JSX eller TSX. Jag har dock inte hittat något och skulle vilja veta (innan jag bygger ett stort projekt på dåliga metoder) vilket som är bäst mellan:

obj = {'foo': 'bar'}

och

obj = {foo: 'bar'}

Eller ännu bättre, finns det något dokument jag kan hänvisa till för detta?

Svar #1

kolla in Airbnb JavaScript Style Guide. Den har en standarduppsättning riktlinjer och bästa praxis.

  • 3.6 Citat endast på egenskaper som är ogiltiga identifierare. eslint: quote-props

Varför? Generellt sett anser vi att det är subjektivt lättare att läsa. Det förbättrar syntaxmarkering och är också lättare att optimera av många JS-motorer.

// bad
const bad = {
  'foo': 3,
  'bar': 4,
  'data-blah': 5,
};

// good
const good = {
  foo: 3,
  bar: 4,
  'data-blah': 5,
};

Svar #2

ESLint-dokumentationen har några synpunkter på detta:

I många fall spelar det ingen roll om du väljer att använda en identifierare istället för en sträng eller tvärtom. Ändå kan du besluta att upprätthålla en konsekvent stil i din kod.

Det finns dock vissa tillfällen när du måste använda citattecken:

  • Om du använder en ECMAScript 3 JavaScript-motor (såsom IE8) och du vill använda ett nyckelord (såsom if) som ett egenskapsnamn. Denna begränsning togs bort i ECMAScript 5.
  • Du vill använda ett icke-identifierande tecken i ditt egenskapsnamn, till exempel att ha en egenskap med ett mellanrum som "one two".

Ett annat exempel där citattecken spelar roll är när man använder numeriska litteraler som egenskapsnycklar:

var object = { 1e2: 1, 100: 2 };

Enligt min åsikt är det bra att använda citattecken när det behövs.

Relaterade artiklar