Rumah > Soal Jawab > teks badan
Tidak lama selepas saya bersentuhan dengan TypeScript, saya kini perlu menulis semula projek sebelumnya menggunakan ts. Saya menghadapi masalah:
ORM db dalam projek itu perlu digunakan sebelum ia boleh digunakan . Sila lihat kod js asal:
//const Redis = require('redis')
let initRedis = function(port, host){
return new Promise((success, fail) => {
module.exports.redis = Redis.createClient(port, host);
success();
})
}
Berikut ialah kod ts yang saya tukar:
const initRedis = function (port:number, host:string): Promise<void> {
return new Promise((success,fail)=>{
export let redis = Redis.createClient(port, host);
success();
})
}
Ralat dihadapi:
error TS1184: Modifiers cannot appear here.
Bagaimana saya boleh mengeksport redis dengan betul selepas melaksanakan kaedah initRedis?
女神的闺蜜爱上我2017-06-26 10:55:08
// xxx.ts
export function initRedis() {}
gunakan
import { initRedis } from 'xx';
扔个三星炸死你2017-06-26 10:55:08
Ini adalah mustahil.
Modul taip adalah mematuhi piawaian modul ES6, dan kedua-dua import dan eksport adalah statik.
Tetapi anda boleh menggunakan kod seperti berikut untuk melakukan beberapa penyelesaian.
// 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']()
phpcn_u15822017-06-26 10:55:08
Boleh rujuk di sini https://blogs.msdn.microsoft....
2.4 sudah disokong. Saya akan menulis contoh kepada anda apabila saya pulang dari kerja