2021-09-01から1ヶ月間の記事一覧

TypeScriptのライブラリのinterfaceを拡張する

TypeScript + Nextで開発中、scriptタグを使う必要が出てきた。 (多分)バージョン11から import Script from 'next/script' を使ってScriptコンポーネント 使うようにしないと怒られる。 そこで <Script /> を使ったのだが、propsに渡す型でエラーでた。 import Scri…

TypeScriptのtypeとinterfaceの違う部分を少し見る

typeはエイリアスであり、いろんな型を表すことができる type A = number type B = number | string type C = { name: string age: number } interfaceはnumberとかnumber | stringのエイリアスは作れない type A = number // error type B = number | strin…

PrismaのschemaでHence the relation field must be optional as well.が出た

prismaのスキーマ書いてた。 Userは1つのGroupに所属し、Groupは複数のUserを持つので "one to many" の関係性である。 Userは必ずしもGroupに所属しているとは限らない。 ↓のようなshemaができた。 model User { groupId Int? group Group @relation(fields…

forkしたライブラリの特定のブランチを使いたい

解決策 末尾に #<ブランチ名> を追加 "git+{CodeのHTTPSからコピったURL}#<ブランチ名>" ストーリー { "dependencies": { "react-native-elements": "git+{CodeのHTTPSからコピったURL}" } } こんな感じでライブラリを使っていたが特定のブランチを使いたか…

forkしたライブラリを使う時にdistがない

解決策 .gitignoreからdist外して、コミットする前にローカルでビルドしてdistを作成する 概略 TypeScropt製ライブラリをforkして変更加えてそれを使いたかった。 { "dependencies": { "react-native-elements": "git+{CodeのHTTPSからコピったURL} } } こん…

DockerでNodeサーバー立てる時はTimeZoneに気を付ける

docker-composeでHapi製サーバーを立てたが、new Date()を使った処理でどうもうまく動かない箇所があった。 調べたらTimeZoneがUTCになっておられた。 TZ: Asia/Tokyoを指定すればok environment: TZ: Asia/Tokyo

TypeScriptでPromise<A>のAの部分の型を取得する

UnwrapPromise というユーティリティを使えば取ることができる type P = Promise<number>; type R = UnwrapPromise<P>; // number</p></number>

ReactNativeのDimensionsで取れる高さはReactNavigationのフッターとかあると変わるのか

ReactNavigationを使うと上下にタブを作ってくれるが、これがあるとDimensionsで取れる高さは変わるのか気になったのでメモ。 使用機種はIPhone11 import {Dimensions} from 'react-native'; const {height} = Dimensions.get('screen'); console.log(height…

TypeScriptでコンポーネントがpropsとして受け取る型を再現する

TSとRNでコンポーネントAを作っているとき、そのコンポーネントAに「FlatListに渡せるProps」をPropsとして渡せるように型を作りたかった。 ComponentPropsを使えば作りやすい。 import React, { ComponentProps } from "react"; type Props = { foo: string…

Githubへのpushで fatal: Authentication failed for とか The requested URL returned error: 403が出たので対処した

リモートリポジトリのurlをセットしなおしたら無事pushできた。 git remote set-url origin <git@ ~ から始まるssh用のURL> git remote -v でリモートリポジトリを確認できる</git@>