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>> = () => {
岸辺露伴は戯れない 短編小説集 (ジャンプジェイブックスDIGITAL)
[ad] 岸辺露伴は戯れない 短編小説集 (ジャンプジェイブックスDIGITAL)
北國ばらっど, 宮本深礼 (Kindle版)