TypeScript
Jak korzystać z biblioteki javascript bez pliku definicji typu
Szukaj…
Wprowadzenie
Chociaż niektóre istniejące biblioteki JavaScript mają pliki definicji typów , wiele z nich tego nie robi.
TypeScript oferuje kilka wzorców do obsługi brakujących deklaracji.
Zadeklaruj dowolny globalny
Jest czasami najłatwiej po prostu zadeklarować globalny typu any
, zwłaszcza w prostych projektów.
Jeśli jQuery nie ma deklaracji typu ( tak jest ), możesz umieścić
declare var $: any;
Teraz każde użycie $ zostanie wpisane any
.
Utwórz moduł, który eksportuje domyślny dowolny
W przypadku bardziej skomplikowanych projektów lub w przypadkach, w których zamierzasz stopniowo wpisywać zależność, utworzenie modułu może być łatwiejsze.
Używając JQuery (chociaż ma dostępne typowania ) jako przykład:
// place in jquery.d.ts
declare let $: any;
export default $;
Następnie w dowolnym pliku w projekcie możesz zaimportować tę definicję za pomocą:
// some other .ts file
import $ from "jquery";
Po tym imporcie $
zostanie wpisane jako any
.
Jeśli biblioteka ma wiele zmiennych najwyższego poziomu, zamiast tego eksportuj i importuj według nazwy:
// place in jquery.d.ts
declare module "jquery" {
let $: any;
let jQuery: any;
export { $ };
export { jQuery };
}
Następnie możesz zaimportować i użyć obu nazw:
// some other .ts file
import {$, jQuery} from "jquery";
$.doThing();
jQuery.doOtherThing();
Użyj modułu otoczenia
Jeśli chcesz tylko wskazać zamiar importu (więc nie chcesz deklarować globalnego), ale nie chcesz zawracać sobie głowy żadnymi wyraźnymi definicjami, możesz zaimportować moduł otoczenia.
// in a declarations file (like declarations.d.ts)
declare module "jquery"; // note that there are no defined exports
Następnie możesz zaimportować z modułu otoczenia.
// some other .ts file
import {$, jQuery} from "jquery";
Wszystko zaimportowane z zadeklarowanego modułu (np. $
I jQuery
) powyżej będzie any
typu