[英]require exported typescript class in javascript
我正在將我的 nodejs 項目從 Javascript 遷移到 Typescript。 這將是一個緩慢的過程,在幾個月內慢慢改變,因為我需要調整一些東西。
我創建了一個看起來像這樣的打字稿類:
// RedisRepository.ts
export class RedisRepository {
public async getDevice(serial: string) : Promise<Device> {
// blah
return device;
}
}
然后在我需要引用的另一個 Javascript 文件中,然后調用上述類上的函數。
// ExpressApi.js
const repository = require('../Redis/RedisRepository');
async function getRedis(req, res) {
try {
const device = await repository.getDevice('serialnumberxxx');
res.status(200).end(JSON.stringify(device ));
} catch (e) {
logger.error(e);
res.status(500).end();
}
}
但是,當它嘗試調用存儲庫上的函數時,它說它不存在。 使用 chrome 調試器,我可以看到它存在於:repository.RedisRepository.prototype.getDevice。 但這似乎不是使用該功能的正確方法。
雖然我很感激我可以將 ExpressApi.js 轉換為 Typescript。 我將在許多不同的文件中遇到這個問題。 所以我現在需要將它用作 JavaScript。 我會慢慢地繼續圍繞這個項目,把東西改成 Typescript。
正如@crashmstr 提到的,您應該創建一個RedisRepository
的新實例,然后調用getDevice
方法。 如果您還想使用
const repository = require('../Redis/RedisRepository');
語法,您可以從RedisRepository.ts
文件中export default new RedisRepository()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.