javascript - 如何使用类型缺少调用或构造签名的表达式解析 ' error TS2351: Cannot use ' new'?

标签 javascript reactjs typescript

我正在将一个名为 Auth.js 的 .js 文件(所以不是 .ts 文件)导入到我的 reactjs 和 typescript 应用程序中,所以在我的组件中我有这个:

import * as Auth from '../Auth/Auth';
..
const auth = new Auth();

这是我的 Auth.js 的一部分:

    export default class Auth {
        auth0 = new auth0.WebAuth({
            domain: AUTH_CONFIG.domain,
            clientID: AUTH_CONFIG.clientId,
            redirectUri: AUTH_CONFIG.callbackUrl,
            audience: `https://${AUTH_CONFIG.domain}/userinfo`,
            responseType: 'token id_token',
            scope: 'openid'
        });

        constructor() {
            this.login = this.login.bind(this);
            this.logout = this.logout.bind(this);
            this.handleAuthentication = this.handleAuthentication.bind(this);
            this.isAuthenticated = this.isAuthenticated.bind(this);
        }
..

当我运行 webpack 时,我收到以下错误消息:

ERROR in ./src/containers/main.tsx
(16,14): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature.

如何解决此 TS 错误?

最佳答案

尝试删除 * as。您正在默认导出 Auth。我们直接导入的默认导出属性没有任何 *{}

import Auth from '../Auth/Auth';
..
const auth = new Auth();

关于javascript - 如何使用类型缺少调用或构造签名的表达式解析 ' error TS2351: Cannot use ' new'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46558215/

相关文章:

javascript - 格式化和显示从 jQuery 返回的数据?

javascript - meteor 覆盖包中元素的点击事件

javascript - 是否可以终止正在运行的网络 worker ?

javascript - react 最终形式我只想在所有字段都有效的情况下处理提交

javascript - 用变量传播 prevState

Javascript 减少累加器解释

javascript - 如何在 js 中正确制作 .map

reactjs - Typescript:推断作为参数传递给另一个函数的回调函数的参数

javascript - 我可以使用 JavaScript 开发 Angular 5 应用程序吗?

javascript - Angular 未定义的多个文件上传