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

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

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

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

TypeScript

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

Q&A

解決済

1回答

331閲覧

Typescriptにおけるnpmインストールライブラリimportの流れ

parapa

総合スコア17

JavaScript

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

TypeScript

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

0グッド

1クリップ

投稿2019/03/31 10:52

編集2019/03/31 12:28

typescirpt環境でReactを使っています。
エディタはVisual Studio Codeを使用しています。

reactを使用するために.tsxファイルでimportします。

tsx

1import React from 'react';

このとき'react'にマウスオーバーすると、

VSCode

1module "hogehoge/node_modules/@types/react/index"

と表示されます。

node_modules/@types以下のフォルダはtypescript用の型定義ファイル群が置かれているのみで、
実体ファイルは別にインストールする必要があるという理解をしています。

そのため'react'にマウスオーバーした場合は、

VSCode

1module "hogehoge/node_modules/react/index"

上記のように表示されるのが正しいと思うのですが、何か理解に間違いはあるでしょうか。


PhpStormでも確かめてみました。
'react'にカーソルをあわせてcommandを押しながらクリックすると、
Choose declarationという表示がなされindex.jsとindex.d.tsと大量のDraft**ファイルが表示されました。

phpstorm

react本体はnode_modules/reactだと思うのですが、Javascriptはどう判断しているのでしょうか。

tsx

1import React from 'react';

でなぜnpmライブラリを使えるのかがいまいちわかっていません。
package.jsonでmain指定されているファイルにおいて、
module.exportsしているものがimportできるのはわかるのですが、
なぜnode_modulesフォルダ以下だとimport文だけでJavaScriptは判断できるのでしょうか。
私としては相対パスを指定する必要があるように思います。

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

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

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

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

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

guest

回答1

0

ベストアンサー

何か理解に間違いはあるでしょうか。

あくまでこの表示は、TypeScriptとしての型情報がどこから供給されているかを示すものです。

npmにTypeScriptの定義が同梱してある例を除けば、@types経由となって間違いではありません。

投稿2019/03/31 11:16

maisumakun

総合スコア145184

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問