首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在类型记录中获得对象的接口?

问如何在类型记录中获得对象的接口?
EN

Stack Overflow用户
提问于 2020-04-24 14:18:24
回答 2查看 153关注 0票数 0

我正在尝试为我创建一个处理gmail的类,问题是我希望为上述对象提供类型记录intellisense。但是,这并没有给出我试图在构造函数中创建的google对象的类型:

代码语言:javascript
复制
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',
        });
    }
}

我还尝试使用该函数的类型定义,并发现如下:

代码语言:javascript
复制
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文件中导入。

我也试过这样做:

代码语言:javascript
复制
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接口的类型?如何从外部库获取对象的接口?构建这样的类以便构造函数将类型传递给属性的最佳实践是什么?

EN

回答 2

Stack Overflow用户

发布于 2020-11-17 10:23:46

从'../node_modules/googleapis/build/src/apis/gmail/v1';导入{ gmail_v1 }正在为我工作。

票数 1
EN

Stack Overflow用户

发布于 2020-04-24 15:21:09

查看代码,您要查找的接口似乎不是由库导出的。如果没有导出它,则无法导入它。

不能导入声明文件(.d.ts)。编辑器等工具使用它们来验证代码和帮助开发人员。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61410534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档