2016-12-23 3 views
2

Ist es möglich, .ts Erweiterungen für React typescript .tsx Dateien zu verwenden, ohne dass die IDE und der Compiler verrückt werden?ts für tsx react files verwenden

+0

Ja. Dateierweiterungen können in 'tsconfig' konfiguriert werden. Sie können die Dateien explizit auflisten oder einen 'include' regexp verwenden. Was ist die IDE? Alle IDEs, die ich kenne, ermöglichen es Ihnen, sie so zu konfigurieren, dass sie für jeden Dateityp die Sprache verwenden. –

+0

Warum möchten Sie JSX in '.ts' Dateien schreiben? –

Antwort

6

Gerade jetzt, nein. Es gibt technische Gründe für die Existenz der .tsx Erweiterung.

Es gibt eine Mehrdeutigkeit, die JSX einführt, wenn es um die Typassistenzsyntax des typisierten Typs geht - insbesondere ist es nicht klar, ob <Foo>xyz der Beginn eines JSX-Tags oder einer Typassertion ist. Aus diesem Grund mussten wir die Assertionssyntax vom Typ as (d. H. xyz as Foo) übernehmen und die Dateierweiterung .tsx einführen.

Auch abgesehen davon bedeutet die Unterstützung von JSX, dass TypeScript entscheiden muss, wie man eine allgemeine Pfeilfunktion disambiguiert. Zum Beispiel in diesem Fall

let identity = <T>(x: T) => x 

TypeScript analysiert das als Anfang eines JSX-Tags. Die Benutzer haben diese in eine nicht-mehrdeutige Form, um den entsprechenden Code zu erhalten:

let identity = <T extends {}>(x: T) => x 

Kurz gesagt: Unterstützung JSX Änderungen implizierte Brech- oder eine ganze Menge unnötiger Komplexität im Compiler mit schlechter Fehlerkorrektur für JSX hätte .

Verwandte Themen