Skip to content

toRef<MaybeRef> - can't assign to value in TS #12986

Open
@Maxim-Mazurok

Description

@Maxim-Mazurok

Vue version

3.5.13

Link to minimal reproduction

https://play.vuejs.org/#eNrNVE2P2jAQ/SsjXwAJBQG7PbCA1FZ72ErdrXY5Wlo5yRBMEzuyHT5E+e8dO2xIBdr2Umkv0djz5s3zm9gH9rkso02FbMKmNjGydGDRVSXkQmUzzpzlbM6VLEptHBzA6Wdc9uG72McYIuM/FMERlkYX0CGyDldcJVpZB8WecmhQJTicNGVTVRUxmjnMfH13OBr37q5UjCgfGnbbNB7aBkUbkVdI0JvbT3cwGMBiXyJ06hYdkBaUdiCslZkScY5ECS5AXjqR/0CiqzyFGEGSAKGcFA5T2Eq3AqFAmFg6I8y+rtquZLI6l1TKYB7wRPvWNHK2OxqPRj1vRJcrgNdSZPigUtxdutD3oisrVdakuOrBbA4HX1rb0tQ3npwpvSNwRjSGDD+eHUeSesWS9j/xC+oo2PL4tPiP1pRkQ6NJl04S36SmvhiJd0Om6C3Q8RoT9wfx5VSJ9Ph3paemfeCsSXLWC+rq/qlchj/d1RWgN2hyLdJ/O9d0UN9qusO0cFiUfjq0mg5aC9ani04SlzKL1lYreg2Cas4SXZQyR/NU6+TsZI/PiTzX229hz5kK+2/7yQqTn1f215aONqHgh0GLZoOcNTknTIauTt+/POKO4iZZ6LTKCf1O8hmtziuvsYZ9qVRKslu4oPYhvGNk68Le7xzSRE+H8kI98hjwnNEr9vWdo5/ljqObUEd2k4uvNBzPSQaOo9toOGbH3883z58=

Steps to reproduce

Just observe TS errors on lines 6 and 12 of repro

Basically, toRef(MaybeRef<number>).value has this type Ref<T = any, S = T>.value: S = T instead of roughly number

What is expected?

No TS errors

What is actually happening?

TS errors:

Type 'number' is not assignable to type 'S'.
  'S' could be instantiated with an arbitrary type which could be unrelated to 'number'.ts(2322)

System Info

System:
    OS: Linux 5.15 Ubuntu 22.04.5 LTS 22.04.5 LTS (Jammy Jellyfish)
    CPU: (20) x64 12th Gen Intel(R) Core(TM) i9-12900H
    Memory: 26.21 GB / 31.19 GB
    Container: Yes
    Shell: 5.1.16 - /bin/bash
  Binaries:
    Node: 20.17.0 - ~/.nvm/versions/node/v20.17.0/bin/node
    npm: 10.8.2 - ~/.nvm/versions/node/v20.17.0/bin/npm
    pnpm: 9.4.0 - ~/.local/share/pnpm/pnpm
  Browsers:
    Chrome: 131.0.6778.264
  npmPackages:
    vue: ^3.5.13 => 3.5.13

Any additional comments?

The issue seems to be resolved in TypeScript Version 5.4.0-beta and later.

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