javascript - 在typescript中如何动态export
问题描述
接触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:// 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. 点字符“” 在MVC Web API 2中进行请求,例如api / people / STAFF.452872. golang - 用IDE看docker源码时的小问题3. docker - 各位电脑上有多少个容器啊?容器一多,自己都搞混了,咋办呢?4. javascript - node如何关闭主进程后 打开另一进程?5. javascript - thymeleaf模板 只有length如何循环生成标签?6. 求大神指点js修改margintop导致无限下滑的问题7. python3的各种库的官方文档中文版在哪儿可以找到8. web服务器 - ubuntu下布置apache加wsgi加python9. python2.7为什么点击了"开始"按钮后,tkinter上的按钮,图中红色部分,再也点不动了?10. mysql - sysbench cpu测试的结果看不懂,求解

网公网安备