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

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

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

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

TypeScript

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

React.js

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

Q&A

解決済

1回答

3138閲覧

Typescript+Reactでimport React from "react"というコードが書かれていない理由。

moeka802

総合スコア11

JavaScript

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

TypeScript

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

React.js

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

1グッド

0クリップ

投稿2018/12/28 12:01

疑問点

ReactとReduxの勉強を初めて少したち、TypeScriptも導入して行きたいと考えています。
そこでTypeScriptで書かれたReactアプリのコードをみたところ以下のような記述をみました。

React+TypeScriptのコード

import * as React from "react" import * as ReactDOM from "react-dom"

疑問点

今まで書いてきたコードは

import React from "react"

のようにそのままReactをimportしていたので、不思議に思いました。
この書き方はTypeScript固有のものなのでしょうか?

よろしくお願いします。

jozu👍を押しています

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

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

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

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

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

guest

回答1

0

ベストアンサー

それは、ワイルドカードを使ったimportで、文法として JavaScript に存在するものです。

質問者さんが今まで書いてきた以下のコードは、デフォルトエクスポートされたクラス(または関数)のみをインポートし、それに対してReactという名前を割り当てます。

JavaScript

1import React from "react";

対して、ワイルドカードを使った場合、指定したモジュール内のすべてのエクスポートされたクラス(または関数)をインポートし、それに対してReactという名前を割り当てます。

JavaScript

1import * as React from "react";

例えば、exportA.js, importA.js 2 つのファイルがあるとして、exportA.jsの内容を以下のようにします。

JavaScript

1export function foo() { 2 return 'foo'; 3} 4 5export default function bar() { 6 return 'bar'; 7}

このとき、importA.jsの内容を以下のようにすると、bar関数だけがインポートされます。

JavaScript

1import defaultExportA from './exportA.js'; 2 3console.log(defaultExportA); // function bar()

次に、importA.jsの内容を以下のようにすると、bar関数だけでなく、foo関数もインポートされます。

JavaScript

1import * as defaultExportA from './exportA.js'; 2 3console.log(defaultExportA); // Object { default: bar(), foo: foo(), … }

投稿2018/12/28 13:14

編集2018/12/28 13:25
s8_chu

総合スコア14731

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

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

moeka802

2018/12/28 13:37

同じimportを使ったコードでも対象が異なっているのですね。 迅速な回答ありがとうございました! ∪・ω・∪
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問