質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

1回答

3340閲覧

【Typescript/React】SyntaxError: /***.tsx: Missing semicolon. エラーを解消したい

nanami0221

総合スコア18

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2021/06/22 05:50

前提・実現したいこと

以下のエラーを解消したいです。

ERROR in ./resources/ts/components/CategoryLists.tsx Module build failed (from ./node_modules/babel-loader/lib/index.js): SyntaxError: /work/resources/ts/components/CategoryLists.tsx: Missing semicolon. (7:4) 5 | 6 | // typescript設定 > 7 | type Category = { | ^ 8 | id: number; 9 | name: string; 10 | created_at: Date;

該当のソースコード

CategoryLists

1import React, { useEffect, useState } from 'react'; 2// import * as api from './../api/CategoryAPI'; 3import axios from 'axios'; 4import ReactDOM from 'react-dom'; 5 6// typescript設定 7type Category = { // ← エラー箇所 8 id: number; 9 name: string; 10 created_at: Date; 11 updated_at: Date; 12}; 13 14const CategoryLists = () => { 15// const CategoryLists: React.VFC = () => { 16 // typescriptを設定する 17 const [categories, setCategories] = useState<Category[]>([]) 18 // const [categories, setCategories] = useState([]) 19 20 // カテゴリーAPIを取得する 21 const getCategories = async () => { 22 const { data } = await axios.get<Category[]>('api/categories'); 23 // const { data } = await axios.get('api/categories'); 24 setCategories(data); 25 } 26 27 // getCategoriesを出力する 28 useEffect(() => { 29 getCategories(); 30 }) 31 32 // 本文 33 return ( 34 // 出力 35 <ul id="categoryLists" className="c-input__lists"> 36 { categories.map(category => { 37 <li key="{category.id}" className="c-input__list"> 38 <input type="checkbox" id="{category.id}" defaultValue="{category.id}" /> 39 <label htmlFor="{category.id}">{category.name}</label> 40 </li> 41 })}; 42 43 {/* <li className="c-input__list"> 44 <input type="text" id="2" /> 45 <label htmlFor="2">いいい</label> 46 </li> */} 47 </ul> 48 ); 49} 50 51if (document.getElementById('categoryLists')) { 52 ReactDOM.render(<CategoryLists />, document.getElementById('categoryLists')); 53} 54

試したこと

1.末尾にセミコロンを追加

[参考] https://www.curict.com/item/5e/5e11535.html

type Category = { - id: number - name: string - created_at: Date - updated_at: Date - } + id: number; + name: string; + created_at: Date; + updated_at: Date; + };

※ 「tslint.jsonの "semicolon" 設定を削除するか、false を指定して無効にします。」は非推奨と記載されているので行いませんでした。

2.node_module再インストール

[参考]  https://ticklecode.com/npmcachedelete/

npm cache clean --force rm -rf ~/.npm rm -rf node_modules
3.Laravelキャッシュクリア

[参考] https://qiita.com/Ping/items/10ada8d069e13d729701

php artisan cache:clear php artisan config:clear php artisan route:clear php artisan view:clear composer dump-autoload php artisan clear-compiled php artisan optimize php artisan config:cache

補足情報(FW/ツールのバージョンなど)

Laravel Framework 8.47.0 npm 6.14.12 react 17.0.2 @types/react 17.0.11 typescript 4.3.2

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2021/06/22 20:59

Laravel よく分かりませんが、TypeScript と認識されずに JavaScript として扱われて type なんて知らないと言ってるように見えますね…。
nanami0221

2021/06/23 01:33

いただいた回答をもとに調べたところ、webpackでjsでコンパイルしておりました、、、 本当に有難うございました。
guest

回答1

0

自己解決

恥ずかしながら、webpackでjsでコンパイルしておりました、、、
hoshi-takanori様、有難うございました。

mix.js('resources/js/app.js', 'public/js') - .js('resources/tsx/app.tsx', 'public/js') +. .ts('resources/tsx/app.tsx', 'public/js') .sass('resources/sass/app.scss', 'public/css') .react();

投稿2021/06/23 01:34

nanami0221

総合スコア18

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問