javascript - Eroare Typescript: Proprietatea 'append' nu există în tipul 'HTMLElement'


Problema:

Primesc o eroare de compilare Typescript 2.2.1 atunci când încerc să adaug un șablon Angular 1.5 compilat la un HTMLElement existent.

Cod:

$document.find(scope.target)[0].append($compile(menu)(scope)[0]);

Eroare de compilare:

[ts] Property 'append' does not exist on type 'HTMLElement'

Am căutat prin definițiile de tip și nu văd o semnătură pentru append().

Aveți vreo idee ce tip sau versiune de TypeScript ar trebui să folosesc?

Mulțumesc!

Răspuns #1

Aici nu are nimic de-a face cu TypeScript.

Metoda corectă de apelat este appendChild:

https://developer.mozilla.org/ro/docs/Web/API/Node/appendChild

append este o metodă jQuery, și dacă vrei să o folosești, ai putea să faci:

$document.find(scope.target).append($compile(menu)(scope)[0]);

și ar trebui să funcționeze și asta.

Sper că ajută

Răspunsul #2

Există o funcție de adăugare la început/la sfârșit pe HTMLElement. Problema este că în prezent este încă experimentală.

Pentru a-l folosi fără a primi erori de la TypeScript, l-am folosit ca orice ¯\_(ツ)_/¯ (myElement).append(otherElement)