created: 2022-07-04T05:05:31.296Z

props(引数)のないコンポーネントを定義したいときの型定義

React.VFC<{}> という型でコンポーネントを定義しようとすると

const C: React.VFC<{}> = () => {

@typescript-eslint/ban-types にこんな警告が表示される。

Don't use `{}` as a type. `{}` actually means "any non-nullish value".
- If you want a type meaning "any object", you probably want `Record<string, unknown>` instead.
- If you want a type meaning "any value", you probably want `unknown` instead.
- If you want a type meaning "empty object", you probably want `Record<string, never>` instead.eslint@typescript-eslint/ban-types

これが自分のやろうとしていたことに該当した。ええとすいません。そうです。

  • If you want a type meaning "empty object", you probably want Record<string, never> instead.

「props(引数)のないコンポーネント」を定義したいときはこのような型をつけるのが正しいとのこと。

const C: React.VFC<Record<string, never>> = () => {
アレ何? 大事典
[ad] アレ何? 大事典
佐々木 正孝, 篠崎 晃一 (単行本)