vue.js - typescript Vue kütüphane tanımlarına özellik ekleme


Tipleri içeren Vue kullanıyorum. Ancak belirli eklentiler tarafından eklenen bazı özellikleri kullanmak istiyorum.

ör.

Vue.$ga
Vue.$router

Typescript, Vue'nun bu özelliklere sahip olmadığını belirtiyor. Bunları Vue tanımına küresel olarak eklemenin bir yolu var mı?

Cevap #1

Evet, yapabilirsin:

import Vue from 'vue'

declare module 'vue/types/vue' {
    interface VueConstructor {
        $ga: any; // define real typings here if you want
        $router: any;
    }
}

Vue ile ilgili daha fazla bilgiyi burada bulabilirsiniz

Cevap #2

main.ts dosyasında, ekleyin:

Vue.prototype.$ga = 'your ga service'

Projenizin /src klasöründe 'my-file.d.ts' adlı bir tanım dosyası oluşturun.

import Vue, { VueConstructor } from 'vue';

declare module 'vue/types/vue' {

    interface Vue {
        $ga: any;
    }

    interface VueConstructor {
        $ga: any;
    }
}

declare module 'vue/types/options' {
    interface ComponentOptions<V extends Vue> {
        $ga?: any;
    }
}

Artık bunu bileşeninizin içinde basitçe şunu yaparak kullanabilirsiniz:

console.log(this.$ga); // your ga service

İlgili makaleler