javascript - 在typescript中如何動(dòng)態(tài)export
問(wèn)題描述
接觸typescript不久,現(xiàn)需要把以前的項(xiàng)目用ts重寫(xiě)一遍,遇到一個(gè)問(wèn)題: 項(xiàng)目中db的orm都需要實(shí)例化才能使用,說(shuō)明比較困難,請(qǐng)看原js代碼:
//const Redis = require(’redis’) let initRedis = function(port, host){ return new Promise((success, fail) => { module.exports.redis = Redis.createClient(port, host); success(); }) }
以下為我轉(zhuǎn)換的ts代碼:
const initRedis = function (port:number, host:string): Promise<void> {return new Promise((success,fail)=>{ export let redis = Redis.createClient(port, host); success();}) }
遇到的錯(cuò)誤:
error TS1184: Modifiers cannot appear here.
請(qǐng)問(wèn) 如何才能正確的在執(zhí)行initRedis方法后再導(dǎo)出redis?
問(wèn)題解答
回答1:// xxx.tsexport function initRedis() {}
use
import { initRedis } from ’xx’;回答2:
這個(gè)是做不到的。 Typescript的模塊是標(biāo)準(zhǔn)符合 ES6 的模塊標(biāo)準(zhǔn), import 和 export 都是static的。
不過(guò)你可以使用類(lèi)似下面的代碼來(lái)做一些workaround。
// dynamic.tsconst _dynamic = {}export function addDynamic() { _dynamic[’Redis’] = function () { console.log(’I am redis’) }}export const DYNAMIC = _dynamic
// app.tsimport { addDynamic, DYNAMIC } from ’@/models’addDynamic()DYNAMIC[’Redis’]()回答3:
可以參考這里 https://blogs.msdn.microsoft....
2.4是已經(jīng)支持了,等下班回家給你寫(xiě)個(gè)范例
相關(guān)文章:
1. 我在centos容器里安裝docker,也就是在容器里安裝容器,報(bào)錯(cuò)了?2. docker-compose中volumes的問(wèn)題3. golang - 用IDE看docker源碼時(shí)的小問(wèn)題4. docker-machine添加一個(gè)已有的docker主機(jī)問(wèn)題5. docker不顯示端口映射呢?6. 在windows下安裝docker Toolbox 啟動(dòng)Docker Quickstart Terminal 失敗!7. docker容器呢SSH為什么連不通呢?8. javascript - 最近用echarts做統(tǒng)計(jì)圖時(shí)遇到兩個(gè)問(wèn)題!!9. docker內(nèi)創(chuàng)建jenkins訪(fǎng)問(wèn)另一個(gè)容器下的服務(wù)器問(wèn)題10. mac里的docker如何命令行開(kāi)啟呢?

網(wǎng)公網(wǎng)安備