Skip to content

$$() on array from defineProps yields incorrect Typescript type #6578

Open
@larrifax

Description

@larrifax

Vue version

3.2.37

Link to minimal reproduction

https://sfc.vuejs.org/#eNp9Uk1vwjAM/StWhESRoNWuXWFC22HHaddlh664UNR8yElBCPW/z0mhQ2zapart52c/v5zF2tr00KHIReEqaqyHttTbpRTeSQEOfWdXUjfKGvJwhskEeqjJKJCC2zJVVmQY+Si11P5kEd7IWAdLxjqjcE1UnnJwnhq9/fiEnoGV0S5wjXWmXMIG60Zj7C7id5XMIusAH8HvWDN6MknGTIAV2bA97yrmYlh3oUqb7p3RLO4sNfDKQ4H3zSFmQo5lhFiKnffW5Vnm6iqcZO9SQ9uM/1LqtG8UpujU4ovM0SExsRTzG46MkwekBaHeICH9x3kH/cUbaHupe5bybNS9QdGUW5tYNMDVooobOo+bi01T7p2ygdoj1WV19Seqr415unrD0+KJLue2FxePjd+9YF12rXfJXxbNR6ocOpYTEBsmm/1YVzLPdaskmcFyBeGlmHqYknIvo28c5MCjsm3pMUS+2D1EiQCv2LYGjoZangFQZLFSZCNc9N9jb/0F

Steps to reproduce

Reproducing requires full IDE support, so copy the code into your IDE and observe that the type of someArrayRef is Ref<string>[].

Attempting to send the value into a function expecting Ref<string[]> yields the following error message:
Argument of type 'Ref<string>[]' is not assignable to parameter of type 'Ref<string[]>'.

What is expected?

Type of someArrayRef should be Ref<string[]>

What is actually happening?

Type of someArrayRef is Ref<string>[]

System Info

No response

Any additional comments?

I've seen a similar bug report in #5976, but the suggested solution there doesn't seem to yield the same javascript output (and the expected reactivity is lost)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions