TypeScriptのIndex Signatureでプロパティに制限をかけたかったので、今更ながらよくよく調べてみた

Index Signatureを使用することでプロパティの型を指定することができる。 例えば、 interface BodyType { [key: number]: { min: number, max: number } } const body:BodyType = { String: { min: 0, max: 230 }, 1: { min:0, max:300 } } console.log(body.String.min)} ] 上記のようにnumber型という風に明示的に宣言することで、Stringという文字列をkeyに指定したことでエラーを吐かせることが可能である。 type '{ hello: { min: number; max: number; }; 1: { min: number; max: number; }; }' is not assignable to type 'BodyType'. Object literal may only specify known properties, and 'hello' does not exist in type 'BodyType'....

投稿日 · 2023-09-26 · 更新日 · 2024-06-07 · 1 分 · nove-b

ネイティブ キャンプ(Native Camp)の無料期間を終え、初めて自身の英語力に対し明るい未来をみた

前回の記事で書いたように、隙間時間で英語の勉強をしたいということで、オンライン英会話のネイティブキャンプ(Native Camp)を始めてみた。 始めたきっかけ その無料期間が終わったので、無料期間を終え思うことを書いておく。そもそもなぜ、オンライン英会話を始めたいと思ったのか。数あるオンライン英会話サービスからネイティブキャンプを選んだのかというのはざっくり前記事に書いたのだが、一応本記事にもまとめておく。 なぜ、英会話を始めようと思ったのか? 転職の気になる企業の公用語が英語だった 職場で海外のデザイナーとやり取りしている人がかっこいい プログラミングのドキュメントなどの資源は英語での情報が多い 子どもができ、海外旅行とか行く際に少しでも危険を避けたい(過去にハワイでかもられた経験有) なぜオンライン英会話を始めようと思ったのか? 双子似非育児中のため、決まって確保できる時間がない 通勤時の車で英語でフリートークするのが最も効率的だと思ったから なぜ、ネイティブキャンプを選んだのか? 時間を指定しない即時レッスンが可能だった レッスン回数無制限だった 無料お試し期間が7日間ついていた 初回登録でAmazonギフト券5000円分がもらえた 特に、時間指定なしの即時レッスン、回数無制限はネイティブキャンプのみだったので、正直迷うことなく、ネイティブキャンプに決めた。 無料期間終了後の感想 そして無料期間を終えた今、思うことを書いていく。 そもそも車の中で英語でフリートークして楽しくめきめき英語力向上という前提が著しく間違えていた。初回だしお手並み拝見で最初のレッスンを受けてみたが、何を言っているかわからない。相手は当然英語しか話さないので、何とか食らいつく。これまで習ってきた英語で何とか聞き取り、何とかついていく。それだけで精一杯なのである。 こんなんじゃフリートークなんて夢のまた夢である。想像していたレッスン方法ではないけど、英語しか話せない相手に食い下がりつつ、レッスンを受けるというのもそれはそれで英語力の向上が見込める気がする。というのも複数回レッスンを受けているとなんとなく会話が通じるようになってきたのである。これはきっと続けていれば、30年間無理だった英語がマスターできるかもしれないという光が少し見えた無料期間だった。 そういうわけでポジティブな感情を抱き、無料期間を終えた。当然、本会員登録もした。 無料期間終了後の情報まとめ ネイティブキャンプの情報をまとめてみる。 ポジティブなところ 先生が英語しか話さない(甘えることができない環境に身を置ける) 音声のみでOK キャラクター先生がいる(パンダのFanFan先生最高、緊張せずに会話できる) 時間に縛られない即時レッスン(実力的に車の中は無理だけど、子どもたちが寝た深夜にレッスン可能) ネガティブなところ 今のところ見つけられていない 今回の無料期間で5回のレッスンを受けた。7日間で5回だったので、思ったより受けられていない。ただこれは時期的な問題で、来週引っ越しを控えており、荷造りに時間を取られているのである。間違いなく、始めるタイミングを間違えた。そこだけは後悔しているが、ネガティブキャンプに出会えたことは幸運だった。時間のない人には特におすすめできる。次は一か月後の感想を書く、その時はもしかすると英語で記事を書いているかもしれないし、書いていないかもしれない。 、

投稿日 · 2023-09-19 · 更新日 · 2024-06-07 · 1 分 · nove-b

React NativeにTypeScriptを導入する

TypeScript 関係をインストールする。 npm install -D @tsconfig/react-native @types/jest @types/react @types/react-test-renderer typescript 上記コマンドでTypeScriptの依存パッケージをインストールする。 完了するとPackage.jsonが "devDependencies": { "@babel/core": "^7.20.0" }, から "devDependencies": { "@babel/core": "^7.20.0", "@tsconfig/react-native": "^3.0.2", "@types/jest": "^29.5.4", "@types/react": "^18.2.21", "@types/react-test-renderer": "^18.0.1", "typescript": "^5.2.2" }, に更新される。 tsconfig.jsonを作成する Appのルートにtsconfig.jsonを作成し、 { "extends": "@tsconfig/react-native/tsconfig.json" } を記述する。 Tsxファイルの作成と動作確認 最後にJavascriptファイルを*.tsxに変換する。 You should leave the ./index.js entrypoint file as it is otherwise you may run into an issue when it comes to bundling a production build. と公式に書かれていたが、そもそもindex.jsを見つけることができなかったからドキュメントが古い? App.tsxに型のない関数を書くとtsエラーが出たので、うまく機能していると思われる。...

投稿日 · 2023-09-15 · 更新日 · 2024-06-07 · 1 分 · nove-b

React NativeでHello World(環境構築~サンプルアプリ立ち上げまで)

過去にReact Nativeの環境構築はしたことがあるが(react native でアプリを作る環境構築をやってみるよ⚡)、それから随分と経つので、再度0からやってみる。 Expo Goの利用 モバイル開発が初めての場合はExpo Goの仕様が推奨されているので、それにならうことにする。 必要なのは、最新バージョンのNode.jsとスマホまたはエミュレータ。 React Native CLI という環境もあるが、Xcode またはAndroid Studioになるとのこと。 また初めてであれば環境構築に1時間を要することになる。 ということで、迷うことなくExpo Goを採用した。 開発サーバーの起動まではとてもシンプルで下記コマンドを実行する。 npx create-expo-app AwesomeProject cd AwesomeProject npx expo start 既存ディレクトリへの展開 ただ今回はリポジトリ作成済みでディレクトリが存在していたので、 npx create-expo-app $(pwd) 上記コマンドで現ディレクトリにAppを展開した。 そのうえで開発環境PCとエミュレータスマホを同一のWi-Fiに接続し、 npx expo start 上記コマンドで開発サーバーを立ち上げた。 エミュレータスマホでApp.jsに書かれた、Open up App.js to start working on your app!が表示されれば、立ち上げが成功している。 Hello World ! 次に、 <Text>Open up App.js to start working on your app!</Text> を <Text>Hello World!</Text> に変更すれば、当然、Hello World!が表示される。 これでReact Nativeでスマホを開発するスタート地点に立った。

投稿日 · 2023-09-12 · 更新日 · 2024-06-07 · 1 分 · nove-b

隙間時間に英語の勉強ができるようにネイティブ キャンプ(Native Camp)を始めました

英語を話す必要性を感じた瞬間 英語が喋れるようになりたいと思ったことは何度もあるが、必要性を感じたことはなかった。 だって翻訳機がこんなにも発達した世の中なのだから。 わざわざ英語を覚えることに、脳のメモリを使わなくてもって思っていた。 英語学習のきっかけ それがなぜ、英語を話せる必要性を感じたかというと、話はこの記事を書いている今から数日だけ遡る。 その日は仕事中に次に個人開発するアプリのことを考えていた。アプリの技術に何を採用するかということで頭を悩ませていた。やりたい言語はたくさんある。しかし時間は有限である。ということで行き着いた結論は、自分の好きな企業、サービスが採用している技術を採用しようということになった。 そういうわけで好きな企業の採用サイトを横断していると多くの企業で英語を採用基準にしているではないですか。 なんということでしょう。中には公用語に英語を採用している企業もある。 つまり好きな企業に行くには英語が必須である。ということに気がついてしまった。 英語学習の方法を検討 そういうわけで英語の勉強を始めようと思いたった。 じゃ、どう勉強するか。 思いついたのは、 Udemy YouTuber Podcast とかだが、性格上座学とか受動的な勉強は向いていない。 それにそういういった勉強はすでに義務教育9年間、さらに高校、大学で行っており、いま喋れていない現実がある。 うん、やっぱり能動的に学習する必要がある。 多分英語で会話をするのが一番の近道に違いない。サラリーマン金太郎もそれで英語とサウジアラビア語を覚えていた。 ということで、外国人と話ができる環境を探すことにした。最初に思いつくのは英会話だけど、仕事と双子の似非育児をしている身としては、そんな時間は取れない。 じゃあ、そもそもいつ時間が取れるかというと、まあ、1番は車の中、つまり通勤中である。 そこで勉強できるのがベストに違いない。ということで色々調べると、オンライン英会話というのがあるらしい。それを使えば車の中の暇な時間を勉強の時間に充てられるんじゃないかということで、さらに調べてみると、NativeCampというオンライン英会話が良さそうだった。 NativeCampの選択理由 複数あるうちで NativeCamp がいいと思ったのは、24時間即時レッスン可能で、回数無制限という点である。 通勤は、特に帰りは何時になるかわからないので予約せずに即時レッスンができるというのは理想的だった。 まあ、それ以上に、7日間無料で、有料登録すれば Amazon ギフトカードが貰えるというのも大きな後押しになったけど。 そういうことで、NativeCamp 始めました。 とりあえず7日間の無料体験でどこまでできるかやってみる。

投稿日 · 2023-09-12 · 更新日 · 2024-06-07 · 1 分 · nove-b