Microsoft/TypeScript

Generic type inference failed

Open

#56,855 创建于 2023年12月23日

在 GitHub 查看
 (4 评论) (0 反应) (0 负责人)TypeScript (6,726 fork)batch import
BugDomain: check: Type InferenceHelp Wanted

仓库指标

Star
 (48,455 star)
PR 合并指标
 (平均合并 6天 17小时) (30 天内合并 9 个 PR)

描述

🔎 Search Terms

Generics

🕗 Version & Regression Information

⏯ Playground Link

https://www.typescriptlang.org/play?#code/GYVwdgxgLglg9mABKSAeAUIriAqBGAGk2xwGZEBTADygrABMBnRAb0QG0BrCgTwC5EjKACcYYAOYBdAQAoICWjQH4AlIgC8APkQA3ODHqIAvkWy4ALBtYnEAeluIAwnAC2LurAmI4IKIigAFjDMjBTQ8EhwwIjy9BSILgCG3MwwfgDucMKciAAOwnC5FMIANjwAdOiaMvSJUIkCLMRYOMp4ANzNiADSyuQAZLhBjDg8Raj4iINkmp1Gak1G6OgoEDJNZq2sXWYARvsCeABMpKZm2ImXMguIwhRQIMJIpC-txmdYJl292+fY+7s5ApqFAFjs-jEEIw4CUKOUSnBxECwIooOVLolripOhDzvIwNDYfDEcjUeUAdjwX9AsFyhB6dccRCvrj6WsbizsF95u0gA

💻 Code

function func<
    T1,
    T3 extends { [key: string]: (context: T1) => void },
    T4 = {}, // Commenting out this section of code makes it work properly.
>(data: {
    T: T1;
    K: T3 & ThisType<T1 & T3>;
}) {
}

func({
    T: {
        bbb: 123,
        aaa() { return 333; },
    },
    K: {
        bbb(context) {
            console.log(context.aaa());
            console.log(context.bbb);
            this.ccc();
        },
        ccc() { },
    },
});

🙁 Actual behavior

display an error message:

'context' is of type 'unknown'. 'context' is of type 'unknown'. 'T4' is declared but its value is never read. 'data' is declared but its value is never read.

🙂 Expected behavior

The type of 'context' should already be determined; it shouldn't be 'unknown'.

Additional information about the issue

No response

贡献者指南