私はreactjs&TypeScriptアプリケーションにAuth.jsと呼ばれる.jsファイル(.tsファイルではない)をインポートしているので、コンポーネントにはこれがあります:
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();