亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在typescript中如何動態export

在typescript中如何動態export

犯罪嫌疑人X 2018-11-13 17:17:50
接觸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?
查看完整描述

1 回答

?
喵喵時光機

TA貢獻1846條經驗 獲得超7個贊

這個是做不到的。 
Typescript的模塊是標準符合 ES6 的模塊標準, import 和 export 都是static的。

不過你可以使用類似下面的代碼來做一些workaround。

// dynamic.ts


const _dynamic = {}


export function addDynamic() {

  _dynamic['Redis'] = function () {

    console.log('I am redis')

  }

}


export const DYNAMIC = _dynamic

// app.ts

import { addDynamic, DYNAMIC } from '@/models'


addDynamic()

DYNAMIC['Redis']()


查看完整回答
反對 回復 2018-12-25
  • 1 回答
  • 0 關注
  • 426 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號