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

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

新規登録して質問してみよう
ただいま回答率
85.48%
コンパイラ

コンパイラは、プログラミング言語で記述したソースコードを、コンピュータの実行形式であるオブジェクトコードに変換するプログラムです。

TypeScript

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

React.js

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

Q&A

解決済

1回答

468閲覧

React + Typescript でPropsをOptionalにしているのにアクセス時に型エラーが発生しない

parapa

総合スコア17

コンパイラ

コンパイラは、プログラミング言語で記述したソースコードを、コンピュータの実行形式であるオブジェクトコードに変換するプログラムです。

TypeScript

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

React.js

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

0グッド

0クリップ

投稿2020/07/03 11:04

エディタはVScodeでTypeScriptは3.9.4を使用しています。

typescript

1type User = { 2 id: string; 3 email: string; 4}; 5 6type Props = { 7 user?: User; 8}; 9 10const Test: React.FC<Props> = (props) => { 11 return ( 12 <div> 13 <p>{props.user.id}</p> 14 <br /> 15 <p>{props.user.email}</p> 16 </div> 17 ); 18};

親コンポーネントが何も渡さないとprops.userはundefinedになると思います。
そのためエディタから警告を出して{props.user?.id}や{props.user.email}と補完してほしいです。
なぜか全く警告をだしてくれません。TSのコンパイラはなぜundefinedである可能性を放棄しているのでしょうか。

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

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

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

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

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

hoshi-takanori

2020/07/03 11:36

こちらの環境では props.user で Object is possibly 'undefined'.ts(2532) と言われますけど…。
guest

回答1

0

自己解決

"strict": false

にしたら正しくエラーが表示されました。

投稿2020/07/03 14:09

parapa

総合スコア17

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問