如何在typescript中获取对象的接口?

我想创建一个处理gmail的类,问题是我想用typecript 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接口的时候 typescript说我不能从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。 我怎样才能在我的类中设置google属性的类型 为gmail_v1.Gmail接口的类型?如何从外部库中获取对象的接口?构建这样的类,让构造函数将类型传递给属性的最佳实践是什么?

解决方案:

码子你要找的接口似乎没有被库导出。如果它没有被导出,你就不能导入它。

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

给TA打赏
共{{data.count}}人
人已打赏
未分类

在VM上更新容器。怎么做?

2022-9-9 8:15:22

未分类

Python中plt.xticks的整数值

2022-9-9 8:15:24

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索