Wyrok

 x = $('#msgBox_' + scope.boxId).position().left;

Generuje A.

Błąd TS2304: Nie można znaleźć nazwy "$"

Chociaż jquery i @types są zainstalowane w folderze NODE_MODULES.

Mój tsconfig.json wygląda tak:

{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es5",
    "sourceMap": true,
    "moduleResolution": "node",
    "declaration": true
  },
  "exclude": [
    "node_modules"
  ]
}

Jak mogę to naprawić?

6
user1934212 28 czerwiec 2017, 10:51

4 odpowiedzi

Najlepsza odpowiedź

Okazuje się, że brakowałem modułu węzła "@ typy / jQuery", który zawiera definicję "$". Po dodaniu "@ type / jQuery": "^ 3.2.5" do listy "Devdependence" w moim pakiecie.Json i ponownie zainstalowane przez "NPM install", wszystko działało dobrze.

7
user1934212 4 lipiec 2017, 13:22

Jednym z powodów tego rodzaju błędu jest twój node_modules nie zawiera definicji typu dla jQuery, tj. Brakuje pakietu @types/jquery.

Moje obejście jest następujące:

  1. Otwórz wiersz polecenia w głównym folderze projektu i wpisz:

    npm install --save @types/jquery.

    Jeśli pojawi się pytanie, aby wybrać wersję, wybierz najnowszy jeden.

  2. Gdy powyższe polecenie zakończy się pomyślnie, uruchom yarn install.

  3. Gdy powyższa instalacja jest sukces, uruchom yarn start, aby rozpocząć projekt.

0
Steffi Keran Rani J 7 maj 2019, 11:19

Próbowałeś:

 import $ = require('jquery');

Na linii 1? To powinno działać. Chociaż powinieneś mieć głębsze spojrzenie na moduły ES6 i modułów TS, aby uzyskać przyczepność, w jaki sposób można skorzystać z systemu modułowego ES6. Również pliki D.TS ...

Należy to być pomocne: https://www.typescriptlang.org/docs/handbook/modules.htmlls >.

8
Aluan Haddad 8 kwiecień 2018, 01:36

Jeśli AngularCli jest tam, gdzie wtryskiwanie jQuery, a następnie w kontrolerze / komponencie możesz zadeklarować zmienną jak:

declare var $: any;
8
Brant 7 kwiecień 2018, 17:58