From 7f279ec0df7a0fd17a9fed1921a19187dd4ff56d Mon Sep 17 00:00:00 2001 From: ktsn Date: Wed, 20 Jul 2016 19:04:09 +0900 Subject: [PATCH 1/3] Add terminal option for directive --- vue/vue.d.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/vue/vue.d.ts b/vue/vue.d.ts index faee50af8f..a8baadcd73 100644 --- a/vue/vue.d.ts +++ b/vue/vue.d.ts @@ -38,6 +38,7 @@ declare namespace vuejs { deep?: boolean; twoWay?: boolean; acceptStatement?: boolean; + terminal?: boolean; priority?: number; [key: string]: any; } From 90138b96f6c3b2cf942268548e43b43420456630 Mon Sep 17 00:00:00 2001 From: ktsn Date: Wed, 20 Jul 2016 19:04:22 +0900 Subject: [PATCH 2/3] Add declaration of directive instance --- vue/vue.d.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/vue/vue.d.ts b/vue/vue.d.ts index a8baadcd73..a335ee63d1 100644 --- a/vue/vue.d.ts +++ b/vue/vue.d.ts @@ -43,6 +43,17 @@ declare namespace vuejs { [key: string]: any; } + interface Directive { + el: HTMLElement; + vm: Vue; + expression: string; + arg?: string; + name: string; + modifiers: { [key: string]: boolean }; + descriptor: any; + params?: { [key: string]: any }; + } + interface FilterOption { read?: Function; write?: Function; From ec6be3b55ae24df5133386823b1ca1395c51e8cb Mon Sep 17 00:00:00 2001 From: ktsn Date: Wed, 20 Jul 2016 19:12:45 +0900 Subject: [PATCH 3/3] Add test cases for Vue directive --- vue/vue-tests.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/vue/vue-tests.ts b/vue/vue-tests.ts index c8612ca870..48d8d91683 100644 --- a/vue/vue-tests.ts +++ b/vue/vue-tests.ts @@ -30,9 +30,20 @@ namespace TestGlobalAPI { twoWay: true, acceptStatement: true, priority: 1, + terminal: true, count: 30 }); - Vue.directive("my-directive", () => {}); + Vue.directive("my-directive", function() { + const d = this as vuejs.Directive; + d.el; + d.vm; + d.expression; + d.arg; + d.name; + d.modifiers; + d.descriptor; + d.params; + }); var myDirective = Vue.directive("my-directive"); var elementDirective = Vue.elementDirective("element-directive"); Vue.elementDirective("element-directive", elementDirective);