@@ -316,7 +316,7 @@ tester.run('prefer-use-template-ref', rule, {
316
316
<div ref="root"/>
317
317
</template>
318
318
<script setup>
319
- import { ref,useTemplateRef } from 'vue';
319
+ import { ref, useTemplateRef } from 'vue';
320
320
const root = useTemplateRef('root');
321
321
</script>
322
322
` ,
@@ -350,7 +350,7 @@ tester.run('prefer-use-template-ref', rule, {
350
350
<a href="" ref="link">Link</a>
351
351
</template>
352
352
<script setup>
353
- import { ref,useTemplateRef } from 'vue';
353
+ import { ref, useTemplateRef } from 'vue';
354
354
const buttonRef = ref();
355
355
const link = useTemplateRef('link');
356
356
</script>
@@ -385,7 +385,7 @@ tester.run('prefer-use-template-ref', rule, {
385
385
<a href="" ref="link">Link</a>
386
386
</template>
387
387
<script setup>
388
- import { ref,useTemplateRef } from 'vue';
388
+ import { ref, useTemplateRef } from 'vue';
389
389
const heading = useTemplateRef('heading');
390
390
const link = useTemplateRef('link');
391
391
</script>
@@ -433,7 +433,7 @@ tester.run('prefer-use-template-ref', rule, {
433
433
<button ref="button">Click</button>
434
434
</template>
435
435
<script>
436
- import { ref,useTemplateRef } from 'vue';
436
+ import { ref, useTemplateRef } from 'vue';
437
437
export default {
438
438
name: 'Counter',
439
439
setup() {
@@ -470,7 +470,7 @@ tester.run('prefer-use-template-ref', rule, {
470
470
<div ref="root"/>
471
471
</template>
472
472
<script setup>
473
- import { shallowRef,useTemplateRef } from 'vue';
473
+ import { shallowRef, useTemplateRef } from 'vue';
474
474
const root = useTemplateRef('root');
475
475
</script>
476
476
` ,
@@ -500,6 +500,19 @@ tester.run('prefer-use-template-ref', rule, {
500
500
}
501
501
</script>
502
502
` ,
503
+ output : `
504
+ <template>
505
+ <button ref="button">Click</button>
506
+ </template>
507
+ <script>
508
+ import { ref, useTemplateRef } from 'vue';
509
+ export default {
510
+ setup: () => {
511
+ const button = useTemplateRef('button');
512
+ }
513
+ }
514
+ </script>
515
+ ` ,
503
516
errors : [
504
517
{
505
518
messageId : 'preferUseTemplateRef' ,
@@ -523,6 +536,20 @@ tester.run('prefer-use-template-ref', rule, {
523
536
const root = ref()
524
537
</script>
525
538
539
+ <script>
540
+ const A = 'foo'
541
+ </script>
542
+ ` ,
543
+ output : `
544
+ <template>
545
+ <div ref="root" :data-a="A" />
546
+ </template>
547
+
548
+ <script setup>
549
+ import { ref, useTemplateRef } from 'vue'
550
+ const root = useTemplateRef('root')
551
+ </script>
552
+
526
553
<script>
527
554
const A = 'foo'
528
555
</script>
@@ -554,6 +581,20 @@ tester.run('prefer-use-template-ref', rule, {
554
581
const root = ref()
555
582
</script>
556
583
` ,
584
+ output : `
585
+ <template>
586
+ <div ref="root" :data-a="A" />
587
+ </template>
588
+
589
+ <script>
590
+ const A = 'foo'
591
+ </script>
592
+
593
+ <script setup>
594
+ import { ref, useTemplateRef } from 'vue'
595
+ const root = useTemplateRef('root')
596
+ </script>
597
+ ` ,
557
598
errors : [
558
599
{
559
600
messageId : 'preferUseTemplateRef' ,
@@ -593,7 +634,7 @@ tester.run('prefer-use-template-ref', rule, {
593
634
</template>
594
635
<script>
595
636
import { isEqual } from 'lodash';
596
- import {useTemplateRef} from 'vue';
637
+ import { useTemplateRef } from 'vue';
597
638
export default {
598
639
name: 'Counter',
599
640
setup() {
@@ -640,7 +681,7 @@ tester.run('prefer-use-template-ref', rule, {
640
681
<button ref="button">Click</button>
641
682
</template>
642
683
<script>
643
- import {useTemplateRef} from 'vue';
684
+ import { useTemplateRef } from 'vue';
644
685
export default {
645
686
name: 'Counter',
646
687
setup() {
@@ -660,6 +701,55 @@ tester.run('prefer-use-template-ref', rule, {
660
701
column : 28
661
702
}
662
703
]
704
+ } ,
705
+ {
706
+ filename : 'script-lang-ts.vue' ,
707
+ code : `
708
+ <template>
709
+ <p>Button clicked {{counter}} times.</p>
710
+ <button ref="button">Click</button>
711
+ </template>
712
+ <script lang="ts">
713
+ export default {
714
+ name: 'Counter',
715
+ setup() {
716
+ const counter = ref(0);
717
+ const button = ref<HTMLDivElement>();
718
+ }
719
+ }
720
+ </script>
721
+ ` ,
722
+ output : `
723
+ <template>
724
+ <p>Button clicked {{counter}} times.</p>
725
+ <button ref="button">Click</button>
726
+ </template>
727
+ <script lang="ts">
728
+ import { useTemplateRef } from 'vue';
729
+ export default {
730
+ name: 'Counter',
731
+ setup() {
732
+ const counter = ref(0);
733
+ const button = useTemplateRef('button');
734
+ }
735
+ }
736
+ </script>
737
+ ` ,
738
+ languageOptions : {
739
+ parserOptions : {
740
+ parser : require . resolve ( '@typescript-eslint/parser' )
741
+ }
742
+ } ,
743
+ errors : [
744
+ {
745
+ messageId : 'preferUseTemplateRef' ,
746
+ data : {
747
+ name : 'ref'
748
+ } ,
749
+ line : 11 ,
750
+ column : 28
751
+ }
752
+ ]
663
753
}
664
754
]
665
755
} )
0 commit comments