DEV Community

Krypton | Madhusudan Babar
Krypton | Madhusudan Babar

Posted on

What is a proper way to create a type for Vue props

I'm trying to create a custom type for my prop in Vue js, I've created a types folder and added it in the tsconfig.typeRoots the IntelliSense and all the other things work correctly, no issues at compile time but when I visit that component, I get an error that Car is not defined but I have already defined it and it works at other places but after checking official documentation I got to know that prop expects a constructor so I redefined the type to declare class Car and added a constructor prototype but again the same issue.

Here are the files: car component

<script lang="ts"> import Vue from "vue"; export default Vue.extend({ name: "the-car", props: { car: { required: true, type: Car, }, }, }); </script> 
Enter fullscreen mode Exit fullscreen mode

the types/common/index.d.ts declaration file:

declare class Car { name: String; image: String; kms: Number; gears: String; desc: String; fuel: String; engine: String; price: Number; constructor(name: String, image: String, kms: Number, gears: String, desc: String, fuel: String, engine: String, price: Number); } 
Enter fullscreen mode Exit fullscreen mode

I'm trying to create a custom type for my prop in Vue js, I've created a types folder and added it in the tsconfig.typeRoots the IntelliSense and all the other things work correctly, no issues at compile time but when I visit that component, I get an error that Car

Top comments (0)