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(); }) }
以下為我轉換的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是已經支持了,等下班回家給你寫個范例
相關文章:
1. python - [已解決]flask QQ郵箱mail2. html - eclipse 標簽錯誤3. 主題切換問題,用過別人的webapp在后臺切換模板主題后手機端打開網頁就是切換到的主題了4. javascript - 小程序中遇到js執(zhí)行時序問題5. mysql 5個left關鍵 然后再用搜索條件 幾千條數(shù)據(jù)就會卡,如何解決呢6. 按照本節(jié)給的代碼“膽小如鼠”并不能變成紅色7. mysql - 在不允許改動數(shù)據(jù)表的情況下,如何優(yōu)化以varchar格式存儲的時間的比較?8. python3.x - git bash如何運行.bat文件?9. javascript - 為什么在谷歌控制臺 輸出1的時候,輸出的1立馬就不見了10. javascript - position fixed;設置了height 100 卻不是瀏覽器可視窗口的寬高,求大神釋疑。
