You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
740 B
46 lines
740 B
import Vue from "../index";
|
|
|
|
declare module "../vue" {
|
|
// add instance property and method
|
|
interface Vue {
|
|
$instanceProperty: string;
|
|
$instanceMethod(): void;
|
|
}
|
|
|
|
// add static property and method
|
|
interface VueConstructor {
|
|
staticProperty: string;
|
|
staticMethod(): void;
|
|
}
|
|
}
|
|
|
|
// augment ComponentOptions
|
|
declare module "../options" {
|
|
interface ComponentOptions<V extends Vue> {
|
|
foo?: string;
|
|
}
|
|
}
|
|
|
|
const vm = new Vue({
|
|
props: ["bar"],
|
|
data: {
|
|
a: true
|
|
},
|
|
foo: "foo",
|
|
methods: {
|
|
foo() {
|
|
this.a = false;
|
|
}
|
|
},
|
|
computed: {
|
|
BAR(): string {
|
|
return this.bar.toUpperCase();
|
|
}
|
|
}
|
|
});
|
|
|
|
vm.$instanceProperty;
|
|
vm.$instanceMethod();
|
|
|
|
Vue.staticProperty;
|
|
Vue.staticMethod();
|
|
|