flowjs / flow.js

A JavaScript library providing multiple simultaneous, stable, fault-tolerant and resumable/restartable file uploads via the HTML5 File API.
Other
2.96k stars 346 forks source link

Getter/Setter, inheritance and $ReadOnly interacting incorrectly #380

Open paul23-git opened 1 year ago

paul23-git commented 1 year ago

Whenever you inherit from a class (doesn't matter what the parent class contains. And use getter/setter - or even just a getter- you cannot access these functions when passing the object with $ReadOnly

export class SomeThing{
}

class Test extends SomeThing {
    get name(): string {
        return "test";
    }
}

function test(data: $ReadOnly<Test>) {
    console.log(data.name)
}

Gives this error:

Error:(28, 22) Cannot get data.name because property name is missing in Test [1].

Removing the inheritance - or removing the $ReadOnly<> modifier makes it work. While i expect it to just work

Flow-bin version: 0.196.3

paul23-git commented 1 year ago

PS: try-flow is not working on my system right now, but the example is simple enough to check directly I think?