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

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

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

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

Q&A

2回答

1751閲覧

型定義付きライブラリの型の探し方がわからない

退会済みユーザー

退会済みユーザー

総合スコア0

TypeScript

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

0グッド

0クリップ

投稿2018/07/12 13:18

TypeScript初心者です。

わからないこと

例えば、Reactのコードです。

import * as React from 'react'; interface Props { data: string; } const ChildComponentPresenter: React.SFC<Props> = props => ( <Txt>{props.data}</Txt> );

ChildComponentPresenterというコンポーネントをReactの方定義ファイルの中からReact.SFCという型で型付けをしています。
これは、「TypeScriptでReactを書いてみた」的なブログ記事などを参考にして、React.SFCという型が定義されていて、それをstateless functional componentにあてればいいのかということを知りました。

node_moduleの中にReactの型定義ファイルを直接見ることもできますが、
interfaceやtypeなどがたくさん書かれていて、いつどれにどれを適用したらいいのかさっぱりわかりません。

エディタにはatomを使っていて、関数などにカーソルをあてれば、型情報などが表示されますが、
これが表示されたところでどう適用したらいいのかわかりません。

以上はReactを例に上げましたが、その他のライブラリでも同様です。
現在は、先人のコードを参考にしながらあっているのかもわからないまま適用していてとても良くないと感じているのですが、
良い勉強の進め方がわかりません。

型定義ファイルを使いこなすときに、気をつけるべき着眼点や、
「型定義ファイル初心者はこのサイトを見るといいよ」といったものがあれば教えていただけると嬉しいです。

よろしくおねがいします。

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

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

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

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

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

guest

回答2

0

自分の場合は、型定義が複雑なライブラリで型の指定方法に悩んだ時には、型定義ファイルのテストコードを見るようにしてます。

大抵のライブラリは DefinitelyTyped にある型定義を使っているので、そこを探してみるといいと思います。例えばReactなら ここ にテストコードがあるので見てみてください。

投稿2018/07/12 14:14

編集2018/07/12 14:18
kakajika

総合スコア3131

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

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

0

Atomは知りませんがVisual Studio Codeでは型定義へジャンプできます。

イメージ説明

たぶんAtomもあるのではないでしょうか。


これが表示されたところでどう適用したらいいのかわかりません。

それを見ても分からないということでしたら,TypeScriptや型定義が分かっていないのではなくReactの使い方が分からないということだと思います。

type SFC<P = {}> = StatelessComponent<P>; interface StatelessComponent<P = {}> { (props: P & { children?: ReactNode }, context?: any): ReactElement<any> | null; propTypes?: ValidationMap<P>; contextTypes?: ValidationMap<any>; defaultProps?: Partial<P>; displayName?: string; }

上記の型定義から以下のように使用できるというところまでは分かります。

interface HogeProps { text: string; } const Hoge: React.SFC<HogeProps> = (props: HogeProps) => { return ( <p>{props.text}</p> ); }; .......... Hoge.defaultProps = { text: 'HELLO WORLD' }; Hoge.displayName = 'hoge';

ただしdefaultPropsやdisplayNameが何に使用されるのかはReact自体の仕様なので,TypeScriptや型定義は関係ないです。

なので

  • kakajikaさんのおっしゃるようにテストコードを見る
  • 公式ドキュメントを探す

なのかな

投稿2018/07/27 17:16

編集2018/07/27 17:39
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問