gpt4 book ai didi

javascript - 需要在 javascript 中导出 TypeScript 类

转载 作者:行者123 更新时间:2023-12-02 22:18:00 25 4
gpt4 key购买 nike

我正在将我的 Nodejs 项目从 Javascript 迁移到 Typescript。这将是一个缓慢的过程,在几个月内慢慢改变事情,因为我需要调整一些东西。

我创建了一个如下所示的 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 文件中导出默认的 new RedisRepository()

关于javascript - 需要在 javascript 中导出 TypeScript 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59322916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com