TypeScript 编译报错

Siona

TypeScript 编译报错

ERROR

error TS2339: Property 'zoom' does not exist on type 'object'.


<script setup lang="ts">
    const props = defineProps<{
        /* lf: object; 报错 */
        lf: any;
    }>();

    const {lf} = props;
    
    // 使用
    lf.zoom(true);
</script>

lf: object; 改为 lf: any; 即可。

ERROR

Vue: Parameter node implicitly has an any type, but a better type may be inferred from usage.

参数类型.png
参数类型.png

报错原因:forEach 循环中,node 参数的类型没有被明确指定,而 TypeScript 的配置又不允许隐式的 any 类型。 解决方案,显式定义 any 类型,nodes.forEach((node: any) => {});


<script setup lang="ts">
    let lf: any;

    /**
     * 清除画布中所有节点状态,除了指定节点外
     */
    function clearOtherNodeStatusExceptSpecifiedNodeId(nodeId: string) {
        lf.value.graphModel.clearSelectElements();
        const data = lf.value.graphModel.getGraphData();
        const {nodes} = data;
        nodes.forEach((node: any) => {
            if (node.id !== nodeId) {
                const nodeModel = lf.value.graphModel.getNodeModelById(node.id);
                nodeModel.setProperties({
                    status: 'normal'
                });
            }
        });
    }
</script>
Last Updated 6/11/2024, 9:46:19 AM
目录