在 Typescript 中应用接口

Apply an interface in Typescript

我正在使用 Node JSTypescript 创建一个项目,我有一个 class 和一个可以输入所有数据的界面。我需要知道的是如何将它应用到class房间。

这是我的 interface:

export interface IController {
    url: string,
    api: string
}

这是我的 class 我想应用它的地方:

import { Request, Response } from 'express';
import { constUtils } from '../utils/const.utils';
import { IController } from '../utils/model.utils';
import { utilsController } from '../utils/index.utils';

class IndexController {

    public async index(req: Request, res: Response): Promise<IController> {

        try {
            let api = req.query.api;
            let constUt = new constUtils();
            let url = constUt.conf.API_MOCS[`${api}`].url;
            await utilsController.utilsCsvConverter(api, url);         
        } catch (error) {
            console.log(error);
        }
    }
}
export const indexController = new IndexController();

这假定局部变量 urlapi 应该在 Promise 解析为由 IController 接口指定的对象时返回:

import { Request, Response } from 'express';
import { constUtils } from '../utils/const.utils';
import { IController } from '../utils/model.utils';
import { utilsController } from '../utils/index.utils';

class IndexController {
    public async index(req: Request, res: Response): Promise<IController> {

        try {
            let api = req.query.api;
            let constUt = new constUtils();
            let url = constUt.conf.API_MOCS[`${api}`].url;
            await utilsController.utilsCsvConverter(api, url);
            return {url, api};         
        } catch (error) {
            console.log(error);
        }
    }
}
export const indexController = new IndexController();

如果你想使用或应用接口到 class 你应该 implement 它在应用 class 中。下面的代码可能会给你清晰的思路。

class IndexController implements csvModel {
    url: string;
    api: string;

    public async index(req: Request, res: Response): Promise<IController> {

        try {
            this.api = req.query.api;
            let constUt = new constUtils();
            this.url = constUt.conf.API_MOCS[`${api}`].url;           
        } catch (error) {
            console.log(error);
        }
    }
}
export const indexController = new IndexController();