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

Next.js项目handleLogin函数报':' expected.ts(1005)错误求助

问题原因及修复方案

这个TypeScript错误是因为可选链操作符语法错误:你写的response?error不符合规范,正确的可选链写法应该是response?.error(问号后必须跟一个点)。

修复后的完整代码

const handleLogin = useCallback(async (credentials) => {

    if (!credentials.email) {
        return setError('email is missing')
    }
    if (!credentials.password) {
        return setError('password is missing')
    }
    try {
        setLoading(true)
        const response: SignInResponse | undefined = await signIn('credentials', { ...credentials, redirect: false })
        // 修复可选链语法错误
        if (response?.error && response.error === 'CredentialsSignin') {
            setError('email or password are wrong')
        } else {
            setError('')
            router.push('/')
        }
    } catch {
        setError('login failed')
    } finally {
        setLoading(false)
        console.log(error)
    }
}, [router, error])

补充说明

可选链操作符?.用于安全访问可能为undefined或null的对象属性,语法要求必须是对象?.属性的形式。你之前的写法缺少了问号后的点,导致TypeScript无法识别语法,从而抛出':' expected的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 19:55:18