2017-05-25 53 views
2

我用jest来测试我的typescript文件。如何在jest测试文件中使用从typescript文件导入模块。

import ClassA from '../classA'; 
jest.mock('../classA'); 

当我import一个class从我classA.ts文件,jest给我一个错误:

export default ClassA; 
^^^^^^ 
SyntaxError: Unexpected token export 

这里是我的jest配置在package.json

"devDependencies": { 
    "@types/jest": "^19.2.3", 
    "jest": "^20.0.4", 
    "ts-jest": "^20.0.4", 
    "ts-node": "^3.0.2", 
    "typescript": "^2.3.2" 
}, 
"jest": { 
    "transform": { 
    ".(ts|tsx)": "<rootDir>/node_modules/ts-jest/preprocessor.js" 
    }, 
    "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$", 
    "moduleFileExtensions": [ 
    "ts", 
    "tsx", 
    "js", 
    "json" 
    ] 
} 

回答

0

{ 
 
    "compilerOptions": { 
 
     "types": ["vue-typescript-import-dts"], 
 
} 
 
} 
 
import Child = require('./child.vue') 
 
import * as Child from './child.vue'
npm install vue-typescript-import-dts --save-dev

0

我结束了我的项目fb ts jest开沟TS-开玩笑赞成刚才复制/粘贴此代码到一个文件中。但是,我必须在代码中添加一点才能让es6模块在笑话测试中工作。

添加

|| path.endsWith('.js') 

if声明。

0

尝试tsconfig.json

0

import { ClassA } from '../classA';

+0

设置allowSyntheticDefaultImportstrue附加文档对你的回答,请 – pirs