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
