2017-01-19 1 views
3

Also ich bin sehr neu in Typoskript und ich weiß sehr wenig darüber. Aber mit viel Mühe und Mühe konnte ich mit VueJS arbeiten.Gibt es eine Möglichkeit, die Kopien der Typdefinitionen, die ich gemacht habe, um sie global verfügbar zu machen, zu entfernen?

Here's the template that I built.

Eines der Dinge, die ich verzweifelt wollte und die dauerte eine lange Zeit zu tun ist, es zu machen, so dass ich brauche, um Vue oder jede Art Dekorateure wie Component nicht in jeder freaking Komponente zu importieren, Ich mache. Wie Sie in this particular vue file sehen können, erweitere ich Vue und benutze viele verschiedene Typ-Dekoratoren und muss diese nicht importieren. Das ist nur so schön in den Augen für mich.

Allerdings ist die Art, wie ich das geschafft habe, nicht so schön. Ich habe im Grunde nur die Typdefinitionen all dieser Dinge in this folder kopiert. Das ist nervtötend, denn sobald eines dieser Pakete seine Typdefinitionen ändert, beginnt meine Vorlage zu brechen.

Allerdings habe ich festgestellt, dass, wenn ich versuchte, diese Typdefinitionen einfach zu importieren (ich habe eine Reihe von Möglichkeiten versucht), dann sind sie nicht global in allen meinen .vue Dateien verfügbar.

Ich würde gerne wissen, ist es möglich, diese Typdefinitionen einfach an einem Ort zu importieren und sie für alle meine .vue Dateien verfügbar zu machen? Wenn ja, kann mir jemand sagen, wie es geht? Wenn das klappt, werde ich so glücklich sein. Ich habe wirklich tagelang daran gearbeitet, dass dies genauso funktioniert wie ich.

+0

Ich bin kein Experte Vue (etwa eine Woche jetzt spielen), aber was kommt meiner Meinung nach Daten als Array in einem importierbaren speichert js, dann importieren Sie diese Daten in die Daten Ihrer Root-Vue-Komponente und greifen Sie dann in jeder gewünschten Kind-Komponente auf diese Datei zu, indem Sie folgendes eingeben: $ root. $ data.yourDefinitinos' (oder so ähnlich). Sag mir, was du denkst, ich kann die vollständige Antwort posten, wenn du willst – Luke

+0

Ich vermute, das macht etwas völlig anderes als das, was ich will. Ich möchte nicht auf Daten zugreifen. Ich möchte nur Typ-Dekorateure verwenden können, ohne sie importieren zu müssen. Siehst du den Unterschied? – Evert

+0

Ja, mein Schlechter, ich habe dich missverstanden. – Luke

Antwort

0

Sie können Ihre Typen im global Umfang erklären:

import Vue from 'vue' 
import Component from 'vue-class-component' 

declare global { 
    const VueComponent: typeof Component 
    class VueClass extends Vue {} 
} 

// From another file 
@VueComponent({ 
    props: { 
    propMessage: String 
    } 
}) 
export default class App extends VueClass { 

} 
Verwandte Themen