Heim > Fragen und Antworten > Hauptteil
Ich bin kürzlich mit Typoskript in Kontakt gekommen und muss jetzt das vorherige Projekt mit ts neu schreiben. Dabei ist ein Problem aufgetreten:
Der ORM der Datenbank im Projekt muss instanziiert werden, bevor er verwendet werden kann Bitte schauen Sie sich den Original-JS-Code an:
//const Redis = require('redis')
let initRedis = function(port, host){
return new Promise((success, fail) => {
module.exports.redis = Redis.createClient(port, host);
success();
})
}
Das Folgende ist der TS-Code, den ich konvertiert habe:
const initRedis = function (port:number, host:string): Promise<void> {
return new Promise((success,fail)=>{
export let redis = Redis.createClient(port, host);
success();
})
}
Fehler aufgetreten:
error TS1184: Modifiers cannot appear here.
Wie kann ich Redis korrekt exportieren, nachdem ich die initRedis-Methode ausgeführt habe?
女神的闺蜜爱上我2017-06-26 10:55:08
// xxx.ts
export function initRedis() {}
use
import { initRedis } from 'xx';
扔个三星炸死你2017-06-26 10:55:08
这个是做不到的。
Typescript的模块是标准符合 ES6 的模块标准, import 和 export 都是static的。
不过你可以使用类似下面的代码来做一些workaround。
// dynamic.ts
const _dynamic = {}
export function addDynamic() {
_dynamic['Redis'] = function () {
console.log('I am redis')
}
}
export const DYNAMIC = _dynamic
// app.ts
import { addDynamic, DYNAMIC } from '@/models'
addDynamic()
DYNAMIC['Redis']()