私はフロータイプと冗談で、このエラーを取得し続ける:jestはフロータイプとオブジェクトの破壊を理解していませんか?
TypeError: Cannot read property 'returnType' of undefined
at builder (src/index.js:22:195)
at Object.<anonymous> (__test__/index.spec.js:6:53)
at process._tickCallback (internal/process/next_tick.js:103:7)
次は、このための私の全体のセットアップです:
アプリケーションコード:
// @flow
type BuilderReturnType = {
path: string,
query: string
}
type BuilderOptionsType = {
returnType?: string
}
export default function builder(path: string, {returnType = 'object'}: BuilderOptionsType): BuilderReturnType {
const query = {};
let queryResult = null;
if (returnType === 'string') {
queryResult = doSomething(query);
}
return {
path,
query: queryResult !== null ? queryResult : query
}
}
.babelrc
設定:
{
"presets": [
"es2015", "jest"
],
"plugins": [
"transform-object-rest-spread",
"transform-flow-strip-types"
],
"env": {
"test": {
"presets": [
"es2015", "jest"
],
"plugins": [
"transform-object-rest-spread",
"transform-flow-strip-types"
]
}
}
}
jest.json
設定:destructureその後、私はoptions
に{returnType = 'object'}
を変更した場合は
export default function builder(path: string, {returnType = 'object'}: BuilderOptionsType): BuilderReturnType { ... }
と:
{
"bail": true,
"verbose": true,
"collectCoverage": true,
"coverageDirectory": "./coverage",
"coverageThreshold": {
"global": {
"branches": 100,
"functions": 100,
"lines": 100,
"statements": 100
}
},
"transform": {
"^.+\\.js$": "<rootDir>/node_modules/babel-jest"
}
}
同時に(BuilderOptionsType
オブジェクト)で非構造とフロータイプを使用してメソッドのシグネチャに問題があるようですメソッド内で、それは完全に正常に動作するようだ。それを念頭に置いて、jest
とflow
タイプを一緒に使用できるようにする唯一の方法はありますか?私は、メソッドボディの内部ではなく、シグネチャ内でデストラクションすることができるようにしたいと思います。
ああ、私は '{戻り値の=「オブジェクト」}考え:BuilderOptionsType'は十分でした – hellatan