在使用TypeScript的应用中,我遇到了这个问题,我不知道如何解决或者为什么会这样。
在模块中我有这种类型的代码
// Api.ts
interface ApiInterface {
signIn(user: object): AxiosPromise
authenticated(): AxiosPromise
getCurrentUser(): AxiosPromise
}
export class Api implements ApiInterface {
public signIn() {
...
}
public authenticated() {
...
}
public getCurrentUser() {
...
}
}
但问题是我在另一个文件中遇到编译错误,我尝试使用Api
类,如下所示:
import { Api } from './Api'
async function foo() {
const isAuthenticated = await Api.authenticated() // ERROR
...
}
错误说明:已对其进行身份验证'类型'类型Api'
我如何通过这个?编译器不知道Api类实现了ApiInterface吗?
答案 0 :(得分:3)
您正在导入该类实例上存在的成员Api
的类authenticated
。您需要使用new
运算符
import { Api } from './Api'
async function foo() {
const api = new Api();
const isAuthenticated = await api.authenticated() // ERROR
...
}