Typescript 由于从.ts文件导入了服务,Jest测试失败

Typescript 由于从.ts文件导入了服务,Jest测试失败,typescript,jestjs,Typescript,Jestjs,我有一个Jest.spec.js文件导入了一个index.js我想要测试 .spec.js: var HttpService = require('./index.js').HttpService; var service_factory = require('../service-factory.ts'); 问题如下:index.js文件导入了一个有错误的.ts文件。这似乎不是项目中的一个问题(我不能触摸该.ts文件),但是当我运行jest测试时,我从该.ts文件中得到了错误 index.

我有一个Jest
.spec.js
文件导入了一个
index.js
我想要测试

.spec.js

var HttpService = require('./index.js').HttpService;
var service_factory = require('../service-factory.ts');
问题如下:
index.js
文件导入了一个有错误的
.ts
文件。这似乎不是项目中的一个问题(我不能触摸该.ts文件),但是
当我运行jest测试时,我从该.ts文件中得到了错误

index.js

var HttpService = require('./index.js').HttpService;
var service_factory = require('../service-factory.ts');
服务工厂.ts

import Loglevel from 'loglevel';
错误:
找不到模块“loglevel”或其相应的类型声明

window.App.services
错误:
属性“App”在类型“Window&typeof globalThis”上不存在。

我在尝试运行测试时,引用
.ts文件
时,正好遇到了这些错误


任何帮助都将不胜感激!谢谢

一个.js文件导入一个.ts文件是非常不寻常的。错误似乎就在那里。Js只能在将typescript传输到javascript后导入它。看看是否有一个.js文件。如果不是,你可能需要先建立它。看起来很像是像JavaScript一样运行typescript时出现的错误。

非常感谢,我想就是这样!我猜.ts是在项目运行时传输的,因此index.js会导入它。我将看看是否可以将其转换为.js或完全绕过它(测试可能对它不感兴趣),它指向typescript感知上下文中的.ts文件(例如,ts节点或ts jest),更典型的是指向javascript文件(在构建时的运行时)。如果看到jest设置中typescript从未在磁盘上传输,而是在需要时使用ts jest动态传输.ts source,我不会感到惊讶。但是我没有把.ts看作是
导入的后缀,我也不希望它出现在javascript的
require()
中。