jest无法导入我的导入,这导致命令在文件的第一行npm run test失败。对于本示例来说,是本地文件,而不是节点模块。我可以更改为并更改导入,但这不是解决方案。SyntaxError: Unexpected token 'export'bar.tsfoo.jsfoo.jsfoo.tsbar.ts
我的src文件夹中的文件:
foo.js:export const magicNumber = 42;
Run Code Online (Sandbox Code Playgroud)
bar.ts:import { magicNumber } from './foo.js';
export const secondMagicNumber = magicNumber / 2;
Run Code Online (Sandbox Code Playgroud)
bar.test.ts:import { secondMagicNumber } from './bar';
import assert from 'assert';
it('should work', function() {
assert.strictEqual(secondMagicNumber, 21);
});
Run Code Online (Sandbox Code Playgroud)
根文件夹中的文件:
jest.config.js:export default {
preset: 'ts-jest',
testEnvironment: 'node',
};
Run Code Online (Sandbox Code Playgroud)
package.json:{
"name": "testing-with-jest",
"version": "1.0.0",
"description": "",
"scripts": …Run Code Online (Sandbox Code Playgroud) 现在,args是元组类型的休息参数。如何使这个构造函数也接受数组,当转换为元组类型时,将导致在所述构造函数中指定的类型?
是否可以在没有对构造进行手动断言的情况下完成,例如:
const args = [3, 5];
let vector = new Vector(...args as [number, number]);
Run Code Online (Sandbox Code Playgroud)
或者
const args: [number, number] = [3, 5];
let vector = new Vector(...args);
Run Code Online (Sandbox Code Playgroud)
class Vector {
x: number;
y: number;
constructor(...args: [] | [number] | [number, number]) {
switch(args.length) {
case 0:
this.x = 0;
this.y = 0;
break;
case 1:
this.x = this.y = args[0];
break;
case 2:
this.x = args[0];
this.y = args[1];
break;
}
}
}
const args = [3, …Run Code Online (Sandbox Code Playgroud)