TypeScript 参数推断失败

w8f9ii69  于 4个月前  发布在  TypeScript
关注(0)|答案(3)|浏览(43)

TypeScript 版本: 3.2.1
搜索词: vscode, typescript, 参数, 推断, 推断
代码

由于是私有仓库,所以无法分享复现。不过,这里是想法:
如果只有一个参数未定义,可以工作:

如果所有参数都未定义,则无法工作:

预期行为:

所有可以推断出的参数都可以被推断出。这不应该出现 any 的情况。

实际行为:

该功能完全不存在。不知道为什么会给出这样的提示。

** playground 链接:** 不可用。
相关问题:

ds97pgxw

ds97pgxw1#

罪魁祸首是:FillWindowsParentLevel1: React.ComponentClass<FillWindowsProps> | undefined
它是唯一一个单独的,推理功能不起作用的。
以下是代码(针对这个bug报告进行了调整):

export function OrgFillWindowsTab(
    activeOrgId: number,
    fillWindows: FillWindowClusters,
    fillWindowsDispatch: FillWindowsDispatch,
    FillWindowsParentLevel1, /*Cannot be inferred*/
    history: History
): SemanticTabPane {
    return {
        menuItem: /*Retracted*/,
        render: () => {
            if (FillWindowsParentLevel1 !== undefined) {
                return (
                    <Tab.Pane /*Retracted*/>
                        {withLogRender(
                            <Segment /*Retracted*/>
                                 /*Retracted*/
                                <FillWindowsParentLevel1
                                    /*Retracted*/
                                />
                            </Segment>
                        )}
                    </Tab.Pane>
                );
            } else {
                // ...
            }
        }
    };
}

如果无法计算1个参数的推理,那么所有其他参数都应该被推断出来(并显示灯泡)。

ttp71kqs

ttp71kqs2#

@sandersn 是否可以从用法中推断出从jsx标签使用中推断出的能力?

gwbalxhn

gwbalxhn3#

不,但它可能不会很难,至少对于简单的用法。然而,即使没有任何用法,重构也应该应用并产生“任何”。看起来它根本不在那里应用。

相关问题