javascript - 在typescript中如何動態(tài)export
問題描述
接觸typescript不久,現(xiàn)需要把以前的項目用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(); }) }
以下為我轉(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();}) }
遇到的錯誤:
error TS1184: Modifiers cannot appear here.
請問 如何才能正確的在執(zhí)行initRedis方法后再導(dǎo)出redis?
問題解答
回答1:// xxx.tsexport function initRedis() {}
use
import { initRedis } from ’xx’;回答2:
這個是做不到的。 Typescript的模塊是標準符合 ES6 的模塊標準, import 和 export 都是static的。
不過你可以使用類似下面的代碼來做一些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)支持了,等下班回家給你寫個范例
相關(guān)文章:
1. 在windows下安裝docker Toolbox 啟動Docker Quickstart Terminal 失敗!2. docker容器呢SSH為什么連不通呢?3. docker - 各位電腦上有多少個容器啊?容器一多,自己都搞混了,咋辦呢?4. docker網(wǎng)絡(luò)端口映射,沒有方便點的操作方法么?5. javascript - Tomcat突然就報錯了,解析不了java文件,試過幾個百度的解決方法,沒解決。6. javascript - 回調(diào)函數(shù)和普通調(diào)用函數(shù)的區(qū)別?7. eclipse - 如何解決no atk-wrapper in java.library.path8. javascript - input框相關(guān)問題9. javascript - 微信小程序用接口B生成的二維碼,默認進入什么首頁?10. angular.js - react的redux和vue的vuex,angular呢
