调用Stripe函数时出现This expression is not callable错误(JS环境遇TS报错)
解决Stripe调用时的TS错误(JS环境下)
问题根源
- Stripe SDK新版本的CommonJS导出结构变更,直接调用
require('stripe')()不符合类型定义的调用签名 - 即使是JS代码,编辑器(如VS Code)会自动加载
@types/stripe类型定义进行校验,因此触发TS错误
修复步骤
1. 修正Stripe初始化代码
新版Stripe SDK的CommonJS导出需取default属性调用:
const stripe = require('stripe').default(process.env.STRIPE_SECRET_KEY);
若项目支持ES模块,也可改用更直观的写法:
import Stripe from 'stripe'; const stripe = new Stripe(process.env.STRIPE_SECRET_KEY);
2. 关闭JS文件的TS类型校验
如果不需要编辑器对JS代码做类型检查,在项目根目录创建jsconfig.json:
{ "compilerOptions": { "checkJs": false } }
也可以单独屏蔽某一行的错误提示:
// @ts-ignore const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY);
3. 对齐依赖版本
确保stripe包与对应的类型定义版本一致,避免不兼容:
npm install stripe@latest @types/stripe@latest
内容的提问来源于stack exchange,提问作者ethan robinson
相关产品推荐
相关产品推荐

