在typescript中如何动态export

接触typescript不久,现需要把以前的项目用ts重写一遍,遇到一个问题:
项目中db的orm都需要实例化才能使用,说明比较困难,请看原js代码:

    //const Redis =  require('redis')

    let initRedis = function(port, host){

         return new Promise((success, fail) => {

             module.exports.redis = Redis.createClient(port, host);

             success();

         })

    }

    

以下为我转换的ts代码:

    const initRedis = function (port:number, host:string): Promise<void> {

        return new Promise((success,fail)=>{

            export let redis = Redis.createClient(port, host);

            success();

        })

    }

遇到的错误:

error TS1184: Modifiers cannot appear here.

请问 如何才能正确的在执行initRedis方法后再导出redis?


犯罪嫌疑人X
浏览 409回答 1
1回答

喵喵时光机

这个是做不到的。&nbsp;Typescript的模块是标准符合 ES6 的模块标准, import 和 export 都是static的。不过你可以使用类似下面的代码来做一些workaround。// dynamic.tsconst _dynamic = {}export function addDynamic() {&nbsp; _dynamic['Redis'] = function () {&nbsp; &nbsp; console.log('I am redis')&nbsp; }}export const DYNAMIC = _dynamic// app.tsimport { addDynamic, DYNAMIC } from '@/models'addDynamic()DYNAMIC['Redis']()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript