@@ -207,6 +207,51 @@ ruleTester.run('require-valid-default-prop', rule, {
207
207
}
208
208
}` ,
209
209
parserOptions
210
+ } ,
211
+ {
212
+ filename : 'test.vue' ,
213
+ code : `export default Vue.extend({
214
+ props: {
215
+ foo: {
216
+ type: Array as PropType<string[]>,
217
+ default: () => []
218
+ }
219
+ }
220
+ });
221
+ ` ,
222
+ parserOptions : { ecmaVersion : 6 , sourceType : 'module' } ,
223
+ parser : require . resolve ( '@typescript-eslint/parser' ) ,
224
+ errors : errorMessage ( 'function' )
225
+ } ,
226
+ {
227
+ filename : 'test.vue' ,
228
+ code : `export default Vue.extend({
229
+ props: {
230
+ foo: {
231
+ type: Object as PropType<{ [key: number]: number }>,
232
+ default: () => {}
233
+ }
234
+ }
235
+ });
236
+ ` ,
237
+ parserOptions : { ecmaVersion : 6 , sourceType : 'module' } ,
238
+ parser : require . resolve ( '@typescript-eslint/parser' ) ,
239
+ errors : errorMessage ( 'function' )
240
+ } ,
241
+ {
242
+ filename : 'test.vue' ,
243
+ code : `export default Vue.extend({
244
+ props: {
245
+ foo: {
246
+ type: Function as PropType<() => number>,
247
+ default: () => 10
248
+ }
249
+ }
250
+ });
251
+ ` ,
252
+ parserOptions : { ecmaVersion : 6 , sourceType : 'module' } ,
253
+ parser : require . resolve ( '@typescript-eslint/parser' ) ,
254
+ errors : errorMessage ( 'function' )
210
255
}
211
256
] ,
212
257
@@ -781,6 +826,51 @@ ruleTester.run('require-valid-default-prop', rule, {
781
826
}` ,
782
827
parserOptions,
783
828
errors : errorMessage ( 'string' )
829
+ } ,
830
+ {
831
+ filename : 'test.vue' ,
832
+ code : `export default Vue.extend({
833
+ props: {
834
+ foo: {
835
+ type: Array as PropType<string[]>,
836
+ default: []
837
+ }
838
+ }
839
+ });
840
+ ` ,
841
+ parserOptions : { ecmaVersion : 6 , sourceType : 'module' } ,
842
+ parser : require . resolve ( '@typescript-eslint/parser' ) ,
843
+ errors : errorMessage ( 'function' )
844
+ } ,
845
+ {
846
+ filename : 'test.vue' ,
847
+ code : `export default Vue.extend({
848
+ props: {
849
+ foo: {
850
+ type: Object as PropType<{ [key: number]: number }>,
851
+ default: {}
852
+ }
853
+ }
854
+ });
855
+ ` ,
856
+ parserOptions : { ecmaVersion : 6 , sourceType : 'module' } ,
857
+ parser : require . resolve ( '@typescript-eslint/parser' ) ,
858
+ errors : errorMessage ( 'function' )
859
+ } ,
860
+ {
861
+ filename : 'test.vue' ,
862
+ code : `export default Vue.extend({
863
+ props: {
864
+ foo: {
865
+ type: Function as PropType<() => number>,
866
+ default: 10
867
+ }
868
+ }
869
+ });
870
+ ` ,
871
+ parserOptions : { ecmaVersion : 6 , sourceType : 'module' } ,
872
+ parser : require . resolve ( '@typescript-eslint/parser' ) ,
873
+ errors : errorMessage ( 'function' )
784
874
}
785
875
]
786
876
} )
0 commit comments