2017-11-24 16 views
0

hereの指示に従ってGatsbyにTyp​​eScriptを使用させようとしていますが、何らかの理由でtscは残りの部分(...)の演算子ではなく、エラー:私は、コマンドラインからtscを実行する場合ギャツビー+ tscは残りのオペレーターをトランスパイールしません

WAIT Compiling... 

ERROR Failed to compile with 1 errors 

error in ./src/components/Input.tsx 

Syntax Error: Unexpected token (26:95) 

> 26 | const Input = ({ text, ...inputProps }) => (react_1.default.createElement(
    |      ^

、ファイルが__restを呼び出して...を交換し、正しくtranspiledされます。ここで

は私tsconfig.jsonです:

{ 
    "compilerOptions": { 
    "outDir": "./dist/" 
    }, 
    "include": [ 
    "./src/**/*" 
    ] 
} 

あなたが見ることができるように、それは非常に最小限のです。私はlibCompiler Optionsから)と他のオプションの束を使用してみましたが、何も動作していないようです。

答えて

1

と入力してtsconfig.json"target": "es5"を追加してください。

{ 
    "compilerOptions": { 
    "outDir": "./dist/", 
    "target": "es5" 
    }, 
    "include": [ 
    "./src/**/*" 
    ] 
} 

これは、ES6コードをES5に変換するようにTypeScriptに指示します。

libオプションを試してみると、TypeScriptでコードのタイプチェックの方法が変更されるだけです。たとえば、"target": "es5"を使用している場合TypeScriptはPromiseの使用を禁止します。これはES5標準の一部ではないためです。 のように、ES6標準ライブラリ+ DOM API(ECMAScriptの一部ではありません)を使用して、ES5の意志でコンパイルするように指示します。"lib": ["dom", "es6"]私はすべての有効なターゲット使用してみました

plugins: [ 
    { 
    resolve: 'gatsby-plugin-typescript', 
    options: { 
     transpileOnly: true, // default 
     compilerOptions: { 
     target: 'es5', 
     experimentalDecorators: true, 
     jsx: `react` 
     }, // default 
    } 
    }, 
] 
+0

- "ES3" を、 "ES5"、 "ES6"、 "ES2015"、 "ES2016"、 "ES2017" と「:

ギャツビーの構成を使用して更新し、 ESNext " - すべて同じ結果です。 : – ahstro

+0

Gatsbyの設定ファイルを使ってコードブロックを追加しましたが、試してみることができますか?Gatbsyは恐らくあなたの 'tsconfig.json'を無視しています。 – fathyb

+0

うわー、うまくいくようです! ! – ahstro

関連する問題