首页 > 解决方案 > 如何让 TypeScript 抱怨 JSX 道具中不匹配的函数定义?

问题描述

我试图让我的 TypeScript 编译器(或至少是 vscode)警告 JSX 道具中的函数定义不匹配。

我可以有一个 React 组件,它的 prop 定义为类似的东西onSomething: (value: boolean) => void,然后将一个不定义参数的函数传递给该 prop。我知道这是有效的 JS,但是有没有办法让 TS 警告这种用法?

例子

在上面的照片中,道具需要一个布尔参数,但onConfirmRebuild定义了零参数。TypeScript 对此没有任何问题,但我希望这样做。

编辑

下面是onConfirmRebuild. 你可以看到它不需要参数,但 TS 并没有警告我或似乎在乎。

async function onConfirmRebuild() {
    // need only the selected collection names
    const collectionNames = gridData.filter((c) => c.selected).map((c) => c.name);

    // need only the selected box ids
    const boxIds = boxes
        .filter((b) => collectionNames.some((name) => name == b.collectionIdentifier))
        .map((box) => box.id);

    const success = await BoxAttributeApi.rebuild(auth, boxIds, false);

    setShowRebuildPrompt(false);

    if (success == false) {
        alert("Failed to submit attribute rebuild request");
    }
}

标签: reactjstypescript

解决方案


推荐阅读