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方法后再導出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. javascript - 我的站點貌似被別人克隆了, google 搜索特定文章,除了域名不一樣,其他的都一樣,如何解決?2. macos - mac下docker如何設置代理3. 新手 - Python 爬蟲 問題 求助4. 請教各位大佬,瀏覽器點 提交實例為什么沒有反應5. javascript - webapp業(yè)務流程基本一致,多套主題(樣式基本不一樣,交互稍有偏差)管理,并且有不斷有新增主題,該如何設計組件化架構(gòu)?6. javascript - 從mysql獲取json數(shù)據(jù),前端怎么處理轉(zhuǎn)換解析json類型7. dockerfile - 為什么docker容器啟動不了?8. mysql - AttributeError: ’module’ object has no attribute ’MatchType’9. javascript - 學習網(wǎng)頁開發(fā),關(guān)于head區(qū)域一段腳本的疑惑10. javascript - JS設置Video視頻對象的currentTime時出現(xiàn)了問題,IE,Edge,火狐,都可以設置,反而chrom卻...
