需要在 javascript 中导出打字稿 class
require exported typescript class in javascript
我正在将我的 nodejs 项目从 Javascript 转移到 Typescript。这将是一个缓慢的过程,在几个月内慢慢改变,因为我需要调整一些东西。
我创建了一个打字稿 class,看起来像这样:
// RedisRepository.ts
export class RedisRepository {
public async getDevice(serial: string) : Promise<Device> {
// blah
return device;
}
}
然后在我需要引用的另一个 Javascript 文件中,然后调用上面的函数 class。
// 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()
。
我正在将我的 nodejs 项目从 Javascript 转移到 Typescript。这将是一个缓慢的过程,在几个月内慢慢改变,因为我需要调整一些东西。
我创建了一个打字稿 class,看起来像这样:
// RedisRepository.ts
export class RedisRepository {
public async getDevice(serial: string) : Promise<Device> {
// blah
return device;
}
}
然后在我需要引用的另一个 Javascript 文件中,然后调用上面的函数 class。
// 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()
。