Mam problemy z poprawnym działaniem jQueryUI. Zanim spróbowałem dodać jQueryUI, samo działanie jQuery działało dobrze.Importowanie jqueryui za pomocą maszynopisu i RequireJS
Z poniższym kodem, aktualnie otrzymuję "TypeError: jQuery nie jest funkcją (...)" w chrome, co jest dziwne, biorąc pod uwagę, że jquery jest oznaczane jako zależność w pliku require.config.
Kompilacja z .ts do .js dzieje się bez błędów.
initApp.ts:
/// <reference path="../../../typings/jqueryui/jqueryui.d.ts"/>
import * as jQuery from "jquery"; //Works completely fine
import * as jQueryUI from "jquery-ui"; //Can't even find the module unless
//d.ts file is modified
skompilowany js:
define(["require", "exports", "jquery-ui"], function (require, exports, jQuery) {...}
jqueryui.d.ts:
/// <reference path="../jquery/jquery.d.ts"/>
declare module JQueryUI { <unmodified code>}
//Added this declare
declare module "jquery-ui" {
export = jQuery;
}
Require.config.js:
require.config({
baseUrl: "./components/",
paths: {
"jquery": "./javascripts/lib/jquery-2.1.4",
"jquery-ui": "./javascripts/lib/jquery-ui",
"go": "./javascripts/lib/go-debug"
},
shim: {
"jquery": {
exports: "jQuery",
},
"jquery-ui": {
//exports: "jQuery", //Adding this line doesn't fix the problem
deps: ["jquery"],
}
},
});
require(["./javascripts/initApp"]);
Drzewo
katalog:
typings/
jquery/
jquery.d.ts
jqueryui/
jqueryui.d.ts
web/
components/
javascripts/
lib/
jquery-2.1.4.js
jquery-ui.js
require.js
initApp.js
initApp.ts
require.config.js
Linki do pełnych plików d.ts:
https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/jquery/index.d.ts https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/jqueryui/index.d.ts
Każda pomoc będzie mile widziana
I usunęliśmy Rozwiązanie dodano do Twojego pytania. Ta praktyka redakcyjna strony jest taka, że rozwiązania muszą być publikowane jako odpowiedzi, aby ludzie mogli głosować na rozwiązanie * niezależnie * od pytania. Więc powinieneś opublikować swoje rozwiązanie jako odpowiedź. Możesz wrócić do historii edycji pytania, znaleźć edycję, w której dodałeś rozwiązanie, kliknąć przycisk "źródło", skopiować źródło i wkleić je do formularza odpowiedzi. Powinien zająć 2 minuty maks. – Louis