您的位置:首页技术文章
文章详情页

javascript - 在typescript中如何动态export

【字号: 日期:2023-06-04 10:18:36浏览:29作者:猪猪

问题描述

接触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是已经支持了,等下班回家给你写个范例

标签: JavaScript
相关文章: