microsoft/TypeScript

Incorrect type inference for prototype

Opened this issue · 1 comments

⏯ Playground Link

https://www.typescriptlang.org/play/?#code/JYOwLgpgTgZghgYwgAgJIEZkG8BQz-IgCuAtgFyGkBG0OAvjgCYQIA2cUKoksiKqAJmx4CABygB7URQz0cONnADOS5AGFMuAsjgyhAXmHbt4qRS3HLxcsnQAGEZYbaGDBRJBKwyKnuSGNADpTMAkwAE9RCEC4eRgiEAQwYA9kJQkSCHiQAAoqDj0ASiMCBA901mjWCQBzPI5gyVFA60K5HHTM7JygkLDI6Lg2oA

💻 Code

interface I1 {
    num: number
}
declare interface I2 {
    prop: I1
}

class C1 {
    a: I2 = {
        prop: {
            num: 10
        }
    }
}

const b: I2 = C1.prototype.a

function somefun(bar: I2) {
    console.log(bar.prop.num)
}

somefun(C1.prototype.a)

// node_modules/typescript/lib/lib.dom.d.ts
declare var Window: {
    prototype: Window;
    new(): Window;
};

You forgot to fill out the issue template.

Duplicate of #55904.