← Back to context

Comment by IshKebab

10 days ago

Sadly not because it's been about 6 years since I looked at it! (We ended up switching to React.)

IIRC it's pretty close, but you'll still end up writing things like `{ type: String, required: false }` where in React you'd just write `string | undefined`.

I'm sure I would find many more issues if I was using it in anger, because it's building on a foundation that didn't have Typescript in mind. E.g. see this thread:

https://www.reddit.com/r/vuejs/comments/l456fl/is_vue_3_real...

> IIRC it's pretty close, but you'll still end up writing things like `{ type: String, required: false }` where in React you'd just write `string | undefined`.

In Vue you also write `string | undefined` since Vue 3.

Also note that the thread you linked is 4 years old.

  • > In Vue you also write `string | undefined` since Vue 3.

    I took that example from the current official Vue 3 docs: https://vuejs.org/guide/typescript/overview#general-usage-no...

    > Also note that the thread you linked is 4 years old.

    So 2 years into Vue 3. Has anything changed?

    I mean it's not bad enough to be a dealbreaker any more like it was with Vue 2. The real dealbreaker is still the reactivity system which leads to spaghetti very quickly.

    • > I took that example from the current official Vue 3 docs:

      Yes, that API also exists as compatibility with the Options API, but this is what you should use:

      https://vuejs.org/guide/typescript/composition-api.html#typi...

      > So 2 years into Vue 3. Has anything changed?

      Yes, e.g. templates are type-checked now. If you have specific things that aren't supposed to work, please list them.

      > The real dealbreaker is still the reactivity system which leads to spaghetti very quickly.

      I've had much better experiences with Vue than with React in this regard.

      1 reply →