##
TypeScript-Version: 2.4.1
Visual Studio Version: 14.0.25420.01 Update 3
Datei: ParallelogramF.ts
namespace JMath
{
export class ParallelogramF extends Polygon
{
...
}
}
Datei: Polygon.ts
namespace JMath
{
export class Polygon
{
}
}
Erwartetes Verhalten:
Klassenpolygon muss korrekt bekannt sein.
Tatsächliches Verhalten:
Fehler tritt auf: Klassenpolygon, das vor seiner Deklaration verwendet wurde.
Dies tritt nur auf, wenn das Kontrollkästchen "JavaScript-Ausgabe in Datei kombinieren" in den Projekteigenschaften aktiviert ist und ein Dateiname "xxx.js" davor angegeben ist.
Lösung:
1- Wenn ich den Namen der Datei "ParallelogramF.ts" in "ZParallelogramF.ts" ändere, wird das Problem behoben und es wird korrekt kompiliert !!!!
2- Wenn ich das Kontrollkästchen "JavaScript-Ausgabe in Datei kombinieren" deaktiviere, wird es korrekt kompiliert !!!!
Das Ändern der Position von 'TypeScriptCompile Include = "ParallelogramF.ts"' in der ".csproj" -Datei des Projekts auf das letzte Element in seinem übergeordneten Tag hilft nicht.
Sie werden feststellen, dass in den Fällen, in denen Sie einen Fehler erhalten, der kompilierte Code nicht ausgeführt wird.
Danke für die Antwort,
Ich kann die Beziehung zwischen diesem Problem und Ihrer Antwort nicht finden? !!!
Es ist offensichtlich, dass der kompilierte Code bei einem Fehler nicht ausgeführt wird !!!!!!!!!
Aber ich habe beim Kompilieren über einen falschen 'Fehler' gesprochen !!!!
Wo ich über "rennen" gesprochen habe ???
Ich sagte, es gibt einen Fehler beim Kompilieren. Es sollte ohne Fehler kompiliert werden, aber ich bekomme einen 'falschen' Fehler !!!!
@arashebrahimi Versuchen Sie hinzuzufügen
/// <reference path="Polygon.ts"/>
ganz oben in Ihrer ParallelogramF.ts-Datei
Möglicherweise gibt es eine "neuere" Methode, die den Compiler darüber informiert, dass er Polygon.ts vor ParallelogramF.ts kompilieren muss, wenn er in eine einzelne Datei kompiliert wird
Ich verstehe nicht, wie dies erwartet wird. Das Problem ist, dass die untergeordnete Klasse nicht im selben Namespace als solche erkannt wird - was theoretisch die Notwendigkeit beseitigen sollte, die Referenz explizit aufzurufen. Der Compiler sollte wissen, dass er die Basisklasse vor allen untergeordneten Klassen kompiliert.
Ich glaube, @arashebrahimi gibt an, dass es sich anscheinend um ein Alphabetisierungsproblem handelt, bei dem
Ich kann dieses Problem mit TS 2.5.3 in Visual Studio Version 15.4.5 reproduzieren.
Hilfreichster Kommentar
@arashebrahimi Versuchen Sie hinzuzufügen
/// <reference path="Polygon.ts"/>
ganz oben in Ihrer ParallelogramF.ts-Datei
Möglicherweise gibt es eine "neuere" Methode, die den Compiler darüber informiert, dass er Polygon.ts vor ParallelogramF.ts kompilieren muss, wenn er in eine einzelne Datei kompiliert wird