Ich versuche Vue.js 2.0 typings mit TypeScript in Visual Studio zu arbeiten. Zuvor hatte ich diese Typings von DefinitelyTyped verwendet, aber sie sind für Vue. js 1.0 und damit nicht übereinstimmen. Sie funktionierten jedoch einwandfrei und ließen mich mit dem Vue
-Typ arbeiten.
Seitdem habe ich die Tippdateien, die mit den Vue.js-Releases ( hier geliefert werden), verwendet ). Ich habe sie in meinem Projekt in meinen ~/Scripts/typings/vue
Ordner eingefügt, aber mein Projekt versteht sie nicht.
Ich habe festgestellt, dass diese Typisierungsdateien möglicherweise über Import / Export verwendet werden können? Es gibt keine anderen Typisierungsdateien, die ich benutze, die auf diese Weise funktionieren, daher bin ich mir nicht sicher, wie ich die Typings richtig implementieren kann, so dass sie global für mein Projekt verfügbar sind.
Ich habe eine Beispiellösung, die ein Beispiel dafür zeigt, was ich versucht habe - hier von meinem GitHub herunterladen Repo .
Hier ist die Struktur meines Scripts
Ordners:
_references.d.ts Inhalt
%Vor%vue_test.ts Inhalt
%Vor% Was ich erwarten würde ist, dass ich Zugriff auf den Namespace Vue.Component
und andere Namespaces hätte, die in typings/vue/index.d.ts
deklariert sind, aber das scheint nicht der Fall zu sein.
Ich habe versucht, die exportierte Klasse wie folgt in global
zu importieren:
Dies erlaubt mir jedoch nur, auf die root Vue
-Klasse zuzugreifen, und daher kann ich nicht Vue.Component
als Typ oder irgendeinen anderen Namespace jenseits von Vue
angeben.
Weitere Informationen:
Visual Studio 2015
Vue.js Version 2.2.1
TypeScript Version 2.1
UPDATE nach Vorschlägen von @unional Hier ist meine neue Ordnerstruktur:
Kein _references.d.ts mehr, stattdessen tsconfig.json verwenden. Die Datei tsconfig.json enthält Folgendes:
%Vor% Der obige Eintrag importiert alle .ts Dateien in das Projekt. Die Datei ~/Scripts/typings/custom-typings/vue.d.ts
enthält Folgendes:
Visual Studio sagt mir Cannot find module 'vue'
, also sind meine Typings immer noch nicht funktionsfähig, obwohl die Datei tsconfig.json funktioniert (ich habe die jQuery-Eingabe hinzugefügt, um das zu überprüfen).
Hier ist ein Link zu der aktualisierten Lösung, die die neuen Probleme zeigt: [link]
Ich konnte Informationen aus @ unionals Kommentar verwenden, aber mit einer kleinen Änderung:
Ich habe das zu meiner custom-vue.d.ts Datei hinzugefügt:
%Vor% Zusätzlich musste ich eine package.json
Datei mit folgendem erstellen:
Schließlich musste ich einen node_modules
Ordner im selben Bereich wie meine tsconfig.json
Datei hinzufügen. Es hat folgendes:
package.json
einfach enthält:
Und die Dinge arbeiten jetzt
Bearbeiten
Als Alternative habe ich entdeckt, dass ich die gesamte Sache node_modules
vermeiden könnte, indem ich die Eigenschaft tsconfig.json
für moduleResolution
auf Classic
setze. Nachdem ich das getan habe, habe ich meinen custom-vue.d.ts
Import so geändert, dass er wie folgt aussieht:
Rufen Sie die Befehlszeile im Stammverzeichnis Ihrer App auf, um NPM und die TypeScript-Befehlszeilenschnittstelle zu verwenden.
npm init
. npm install --save vue
. npm install --save-dev @types/vue
. tsc --init
. tsc
. Die Verwendung von NPM ist unkonventionell und erfordert viel manuelle Arbeit. Hier ist einer dieser manuellen Ansätze.
Laden Sie VueJS 2.1.1 aus dem GitHub Repo herunter. Nach dem Extrahieren des Archivs
dist
in das Verzeichnis Scripts/vuejs
, typings
in das Verzeichnis typings/vuejs
, tsconfig.json
%Vor%Fügen Sie am Anfang der Datei, die Vue verwendet, eine relative Importanweisung hinzu.
%Vor%Hier finden Sie eine aktualisierte Version Ihres WebApplication1-Beispiels.
Tags und Links visual-studio typescript vue.js vuejs2 typescript-typings