You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript传递回调函数报错:Expected identifier but found "function"

错误原因与修复方案

错误根源

你写的代码里,试图在对象字面量中直接执行函数调用,这不符合JavaScript/TypeScript的对象语法规则。对象字面量要求内部是键: 值的键值对结构,而你直接写了chargeCreditCard(function(){...});这样的执行语句,解析器会误以为你要定义对象属性,但找不到对应的属性名(标识符),所以抛出Expected identifier but found "function"错误。

修复方案

根据你的实际需求,有两种常见的修复方式:

方式1:直接调用函数(无需包裹对象)

如果你的目的只是调用chargeCreditCard,直接去掉多余的对象包裹即可:

// 直接调用函数
chargeCreditCard(() => {
    console.log('chargeCreditCard call complete.');
});

// 如果需要导出函数调用的返回值,写成:
// export default chargeCreditCard(() => {
//     console.log('chargeCreditCard call complete.');
// });

方式2:在导出对象中封装方法

如果你的目的是把调用逻辑封装成导出对象的一个方法,要遵循对象方法的语法规则,给方法指定一个标识符:

export default {
    // 定义对象方法,命名一个合法标识符
    triggerCharge() {
        chargeCreditCard(() => {
            console.log('chargeCreditCard call complete.');
        });
    }
};

额外说明:原代码里function(): Function的写法冗余,用箭头函数() => {...}更简洁,TypeScript会自动推断回调类型,完全符合chargeCreditCard参数要求的Function类型。

内容的提问来源于stack exchange,提问作者chovy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 05:00:32