Ostatnio zacząłem używać TypeScript z Expo. Zrobiłem wszystkie integracje linijki / formatyzatora tak, typescript-eslint
aby móc wychwycić większość błędów podczas kodowania. Aby sprawdzić, czy kod się kompiluje, uruchamiamnpx tsc
co jakiś czas i odpowiednio naprawiam.
Jedną z rzeczy, których jeszcze nie w pełni zrozumiałem, jest to, dlaczego moja aplikacja buduje się pomyślnie, nawet jeśli występuje wiele błędów kompilacji. Spodziewam się (i wolę), aby zobaczył błąd czerwonego ekranu dla każdego błędu kompilacji zamiast pomyślnej kompilacji aplikacji i dowiem się go później. Na przykład,
function square<T>(x: T): T {
console.log(x.length); // error TS2339: Property 'length' does not exist on type 'T'.
return x * x;
}
jest typowym błędem TypeScript, który (jak sądzę?) można łatwo sprawdzić podczas kompilacji. Chcę, aby spowodowało to duży błąd czerwonego ekranu i niepowodzenie kompilacji.
Jestem całkiem nowy w TypeScript, więc możliwe, że brakuje mi czegoś bardzo ważnego. Co dokładnie powoduje tę łagodność i czy istnieje sposób egzekwowania surowszych kontroli?
npx tsc
ale chcę uzyskać czerwony ekran dla każdego błędu TypeScript, tak jak robię to w przypadku zwykłych błędów JS, takich jakconst n = 23; n.reverse();
ten, co powoduje, że czerwony ekran z komunikatem „n.reverse nie jest funkcją.” „n.reverse ()”, „n.reverse” jest niezdefiniowany) ”Odpowiedzi:
Pierwszą rzeczą do zrozumienia jest to, że Typescript jest nadzbiorem Javascript i w tym przypadku nie jest sprawdzany podczas kompilacji.
Zasadniczo to, co się dzieje, polega na tym, że Babel po prostu usuwa Typescript i konwertuje go na JavaScript, który następnie jest kompilowany w pakiety js.
Możesz rzucić okiem na pierwszą linię następujących dokumentów Babel, a także na zastrzeżenia: https://babeljs.io/docs/en/next/babel-plugin-transform-typescript
Sugeruję, aby rozszerzyć polecenie kompilacji o najpierw
tsc
kompilację maszynopisu, a raczej o niąnoEmit
maszynopisu, ustawiło na true w tsconfig.Aktualizacja : Znalazłem inny przypadek, w którym ostatnio dotyczy to dodawania
jest
itypescript
do projektu. Na dole dokumentów Jest jest faktycznie to samo:https://jestjs.io/docs/en/getting-started#using-typescript
źródło