Mein Ziel ist es, einen Initialisierungscode für materialize-css innerhalb eines Aurelia-Projekts auszuführen. I have a related question on this matter, aber es wurde nie gelöst. Das Problem ist folgendes: Ich Typoskript benutze und bisher nicht in der Lage gewesen, Funktionen auszuführen, wie:Wie kann ich eine Definitionsdatei in Typoskript für eine Javascript-Datei schreiben?
$('slider').slider;
So entschied ich, diese in einer Javascript-Datei (die die materialisieren Richtlinien aus dem Import sieht in index.html) und legen Sie eine Definitionsdatei oben drauf. Als ich versuchte, die Deklarationsdatei zu schreiben, folgte ich den an typescriptlang.org Anweisungen und schrieb dazu:
module initializers {
function setUpHome(): void;
}
declare module "initializers" {
export = initializers;
}
Aber ich erhalte den folgenden Fehler:
A 'declare' modifier is required for a top level declaration in a .d.ts file
Ich würde jede Führung appretiate.
EDIT: Funktion setUpHome
function setUpHome() {
console.log("hello");
$('.slider').slider();
$('select').material_select();
$('.button-collapse').sideNav();
var slider = document.getElementById('wordCountSlider');
noUiSlider.create(slider, {
start: [0, 6000],
connect: true,
step: 50,
range: {
'min': 0,
'max': 6000
},
format: wNumb({
decimals: 0
})
});
slider = document.getElementById('timeRangeSlider');
noUiSlider.create(slider, {
start: [0, 5],
connect: true,
step: 1,
range: {
'min': 0,
'max': 5
},
format: wNumb({
decimals: 0
})
});
setUpTagSearchFilter();
};
function setUpTagSearchFilter() {
var cities = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('text'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: 'assets/cities.json'
});
cities.initialize();
var tagfilter = $('#tag-filter');
tagfilter.materialtags({
itemValue: 'value',
itemText: 'text',
typeaheadjs: {
name: 'cities',
displayKey: 'text',
source: cities.ttAdapter()
}
});
tagfilter.materialtags('add', { "value": 1 , "text": "Amsterdam" , "continent": "Europe" });
tagfilter.materialtags('add', { "value": 4 , "text": "Washington" , "continent": "America" });
tagfilter.materialtags('add', { "value": 7 , "text": "Sydney" , "continent": "Australia" });
}
Sie hatten Recht, das Problem waren die roten Squigglies. Ich habe die Typinstallationen ausgeführt, dann den Typisierungsordner überprüft und die Installation (oder so scheint es) ist erfolgreich verlaufen. Die roten Squigglies und der Konsolenfehler: Fehler TS2339: Property 'Slider' existiert nicht auf Typ 'ElementFinder. Immer noch bestehen. Sollte ich zusätzliche Importe in die Typoskript-Datei einschließen, wo ich die materialize-Funktionen anrufe? Danke für die Hilfe. –
Es ist super schwer zu sagen. Wenn ich das [dts] (https://github.com/DefinitelyTyped/DefinitelyTyped/blob/72c15a7cb356aa85b19d3f144f0cbb334818f78/materialize-css/materialize-css.d.ts#L398) ansehe, denke ich, dass das dts für jquery 2 und dich geschrieben wurde benutze jquery 3. Probiere das aus. Auch Upvote für Anstrengung? –
Ok, du hast mir wenigstens in die (scheinbar) richtige Richtung gezeigt. Ich werde eine separate Frage zu diesem Thema öffnen. –