我正在尝试为我创建一个处理gmail的类,问题是我希望为上述对象提供类型记录intellisense。但是,这并没有给出我试图在构造函数中创建的google对象的类型:
class Gmail {
private auth: any;
google = null;
messageList: emailListType = ('' as unknown) as emailListType;
constructor(auth) {
this.google = google.gmail({ version: 'v1', auth: this.auth }).users;
}
async getEmailsInLabel(label: string) {
//@ts-ignore
this.messageList = await this.google.messages.list({
labelIds: [label],
userId: 'me',
});
}
}我还尝试使用该函数的类型定义,并发现如下:
import { AuthPlus } from 'googleapis-common';
import { gmail_v1 } from './v1';
export declare const VERSIONS: {
'v1': typeof gmail_v1.Gmail;
};
export declare function gmail(version: 'v1'): gmail_v1.Gmail;
export declare function gmail(options: gmail_v1.Options): gmail_v1.Gmail;
declare const auth: AuthPlus;
export { auth };google似乎是gmail_v1.Gmail类型的,但是每当我试图导入gmail_v1.Gmail接口时,类型记录显示我不能从d.ts文件中导入。
我也试过这样做:
class Gmail {
private auth: any;
google = google.gmail({ version: 'v1', auth: this.auth }).users;
messageList: emailListType = ('' as unknown) as emailListType;
constructor(auth) {
this.auth = auth;
}
async getEmailsInLabel(label: string) {
//@ts-ignore
this.messageList = await this.google.messages.list({
labelIds: [label],
userId: 'me',
});
}
}用于输入,但不运行函数,但没有意义,我还尝试重新分配构造函数中的google属性,使之等同于google.gmail函数的执行:不起作用。
TLDR:如何将类中的gmail_v1.Gmail属性的类型设置为gmail_v1.Gmail接口的类型?如何从外部库获取对象的接口?构建这样的类以便构造函数将类型传递给属性的最佳实践是什么?
发布于 2020-11-17 10:23:46
从'../node_modules/googleapis/build/src/apis/gmail/v1';导入{ gmail_v1 }正在为我工作。
发布于 2020-04-24 15:21:09
查看代码,您要查找的接口似乎不是由库导出的。如果没有导出它,则无法导入它。
不能导入声明文件(.d.ts)。编辑器等工具使用它们来验证代码和帮助开发人员。
https://stackoverflow.com/questions/61410534
复制相似问题