Właśnie zacząłem używać TypeScript i czasami dostaję błędy kompilatora "użycie niezadeklarowanej zmiennej". Na przykład następujące prace w czystym JavaScript:Czy TypeScript jest naprawdę nadzbiorem JavaScript?
var foo = {};
foo.bar = 42;
Jeśli staram się zrobić to samo w maszynopisie nie będzie działać i dać mi błąd wymieniony powyżej. Muszę napisać to tak:
var foo :any = {};
foo.bar = 42;
In Plain JavaScript definicja typu z żadnym nie jest ani konieczne, ani ważna, ale w maszynopisie to wydaje się być obowiązkowe. Rozumiem błąd i powód dla niego, ale zawsze słyszałem w filmy i czytać w dokumentacji:
„maszynopis jest wpisany rozszerzeniem JavaScript [...]”
Introduction Video @minute 3:20:
"Cały kod JavaScript jest kod maszynopis, po prostu skopiuj i wklej"
Czy to coś zmieniło się podczas rozwoju TypeScript, czy też muszę przekazać określone ustawienia kompilatora, aby to działało?
To jest nadzbiór. Ale to nie znaczy, że może być 1) skompilowany i 2) używany jako zwykły JavaScript. Objective-C jest nadzbiorem C/++, ale działa z własnym kompilatorem/IDE/środowiskiem. Musisz przestrzegać dyrektyw TypeScript i nie porównywać tego dosłownie z JavaScriptem. –
Hmm, może to tylko złe sformułowanie. To naprawdę nie jest * błąd * czy to jest? Więcej ostrzeżenia *, ponieważ generuje poprawny skrypt JavaScript. Z pewnością TypeScript często zachwala się, że podanie Javascriptowi kompilatora powinno * "po prostu zadziałać" * – CodingIntrigue
@AndreyPopov: Ok, ale nie jest to składniowy superkompilator JavaScript, a zwłaszcza drugi cytat jest nieprawidłowy ... – Markus