タイプスクリプトでenvを使用する場合、タイプof propertyの「変数名」は互換性がありません.


なぜだめなのかよく考えましたが、envのタイプが安定しているからです.

サーバから


npm install@types/dotnv--save-devを使用してdotnvをインストールするタイプ、または
これでもダメならenvd.tsファイルを作成し、その中に
declare namespace NodeJS {
  export interface ProcessEnv {
    SECRET_KEY: string;
    ...
  }
}
このようにタイプを一つ一つメモします.
(なんといってもstring|undefinedはこれだけ)🤯)

クライアントから


勝手にファイルを作って、このように書いて、それから直接インポートすればいいです.コアはas string!
export const s3config = {
  bucketName: process.env.REACT_APP_BUCKET_NAME as string,
  region: process.env.REACT_APP_REGION as string,
  accessKeyId: process.env.REACT_APP_ACCESS_ID as string,
  secretAccessKey: process.env.REACT_APP_ACCESS_KEY as string,
};