4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【TypeScript×React】型指定をする時、何の型にすればいいか分からなくなった時の自分流Tips

Posted at

はじめに

TypeScriptの初心者の方は掲題のような状況には心当たりありませんか?(私はめっちゃあります)
そんなときの自分流のTipsを展開します!

問題

TypeScriptで、引数定義等をする際に、これ何の型を指定するんだっけ?という時の自分なりの解決方法です。
例えば、↓の部分で言う「この部分」のところに何を指定するんだっけ?という場合

Sample.tsx
import { FC } from "react";

export const Sample: FC = () => {
+ const onChangeName = (e: この部分) => {};

  return (
    <form>
      <input type="text" name="name" onChange={onChangeName} />
    </form>
  );
};

解決方法

まず、「この部分」のところに適当な型を入れます(↓では「string」を入れる)。

Sample.tsx
import { FC } from "react";

export const Sample: FC = () => {
+ const onChangeName = (e: string) => {};

  return (
    <form>
      <input type="text" name="name" onChange={onChangeName} />
    </form>
  );
};

そうすると、当然VSCode上でエラーになるので、エラーとなっているinput項目上のonChangeの部分でマウスをホバーします。

スクリーンショット 2024-08-08 20.05.31.png

すると↑のようなエラーが出ますが、4行目に「型 'ChangeEvent' を型 'string' に割り当てることはできません。ts(2322)」が出ています。
ここで正しい型を表示してくれているので、ChangeEvent〜の部分をコピーしてstringの部分にそのまま貼り付けて、import文を追加します。

Sample.tsx
import { ChangeEvent, FC } from "react";

export const Sample: FC = () => {
  const onChangeName = (e: ChangeEvent<HTMLInputElement>) => {};

  return (
    <form>
      <input type="text" name="name" onChange={onChangeName} />
    </form>
  );
};

するとエラーが消えます!便利!!

おわりに

まあ慣れればいちいちこんなことしなくてもいいんでしょうけど^^;

JISOUのメンバー募集中🔥

プログラミングコーチングJISOUではメンバーを募集しています。
日本一のアウトプットコミュニティでキャリアアップしませんか?
気になる方はぜひHPからライン登録お願いします!👇

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?