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

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

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

Babelは、JavaScriptの次世代仕様であるECMAScriptのコンパイラ。次世代の標準機能を用いて記述されたコードを、それらの機能に対応していないブラウザでも動作するコードに変換することができます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

React.js

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

Q&A

1回答

5225閲覧

ES6でクラス直下にプロパティを設定したい

退会済みユーザー

退会済みユーザー

総合スコア0

Babel

Babelは、JavaScriptの次世代仕様であるECMAScriptのコンパイラ。次世代の標準機能を用いて記述されたコードを、それらの機能に対応していないブラウザでも動作するコードに変換することができます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

React.js

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

0グッド

1クリップ

投稿2017/06/06 06:22

編集2017/06/06 06:24

#参考にしたサイト
ES6(ES2015)でクラス変数を定義する!
ES2015のclassでプロパティを使えるようにする

#環境
Webpack + React + ES6の最小構成を考えてみる。
↑このサイトのhello world表示済み
・上のサイト + babel-plugin-transform-class-propertiesbabel-preset-stage-0を-Dでインストール済み
・.babelrcの設定済み

// .babelrc { "presets": [ 'es2015', "stage-0", "react" ], "plugins": [ "transform-decorators-legacy", "transform-class-properties" ] }

#やりたいこと
クラス直下にプロパティを設定したい。

// 上の環境 + test.jsを追加 class Test { ringo = 'sheena ringo' } export { Test }
// hello.js import React, { Component } from 'react' import { Test } from './test.js' export default class Hello extends Component { render () { return ( <h1>Hello{this.hello()}</h1> ) } hello () { console.log(Test.ringo) } }

#エラー内容

Error: Module build failed: SyntaxError: Missing class properties transform.   1 | class Test { > 2 |  ringo = 'sheena ringo'  |  ^  3 | }  4 |   5 | export { Test }
./test.js Module build failed: SyntaxError: Missing class properties transform. 1 | class Test { > 2 | ringo = 'sheena ringo' | ^ 3 | } 4 | 5 | export { Test } @ ./hello.js 33:12-32 @ ./main.js @ multi (webpack)-dev-server/client?http://localhost:8080 webpack/hot/dev-server ./main.js

参考にしたサイトではnpmモジュール2つbabel-plugin-transform-class-propertiesbabel-preset-stage-0をインストールし、.babelrcにそれぞれ設定すれば良いとありましたが、上記のエラーが出ます。npm iしたものとファイルの変更は上記以外ありません。

test.jsのようにクラス直下にプロパティを設定して動かすにはどうすればよいですか?
上記のどこがいけないのでしょうか。

jsその他勉強中のため、至らないところがあるかもしれません。
回答よろしくお願いします。

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

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

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

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

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

guest

回答1

0

訂正:
しまった!質問内容をよくみてませんでした。babel前提なら使えるはずなのに・・・というところが問題なんですね

大変失礼しました。回答になってなくて申し訳ありません。

(蛇足:とはいえ・・・こうしたことに挑戦するなら、自分で解決することも含めて取り組んだ方が、今後のnode/babel等々のupgradeでトラブったときに困らない自信がつくかも知れませんね。最新の仕様を先取りして使うというのはそういう心構えも必要ではないかなぁと。ナマイキいってすみません。ここはスルーしていただいて結構です)


qiita: ES6ではデータのプロパティをクラス直下で定義できない
ES6: 言語仕様 - class definitions

とのことなのでconstructorの中などで定義してくださいということなのだと思います。

投稿2017/06/06 09:16

編集2017/06/06 09:52
KSwordOfHaste

総合スコア18394

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問