TypeScript
zenn.dev jsdoc.code-snippets { // Place your GLOBAL snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and // description. Add comma separated ids of the languages where the snippet is applicable in t…
もちろんVSCodeでチェックはできるのだけど、エラー起きてるファイルを開いていないとエラーに気づけない。共通で使ってる型定義を変えたりした場合とか。 next lintがOKでもnext buildだとビルドエラーでだめだったりしてどうにかしたいのが発端。 github.c…
とある条件下でコンポーネントにfocusさせたかった。結局この方法は採用しなかったけど備忘録として。 zenn.dev qiita.com forwardRefでrefを受け流して繋げて(本題から逸れるがforwardRefじゃなくてpropsでRefObject渡すのでも同様に可能)、コンポーネン…
以下みたいなやつ、なんか初見でぱっと見でcontainedとoutlinedがなにがおきたらどうなるのかわからなかった。Null合体演算子と三項演算子が同時に使われているの初めて見た。 condition1 ?? condition2 ? 'contained' : 'outlined' condition1がtrueだった…
qiita.com まあどうやらオブジェクトを直接更新するの無理ってことみたい。まあstateなので直接更新するつもり無いのだけど、オブジェクトを直接更新した新しいオブジェクト作ってそれをsetする、みたいなときにも怒られちゃうので、新しいオブジェクトの作…
kk-web.link もうまんまこれが答えだった。 undefinedも文字列として"undefined"してしまうと。なんかasに近い。 なんか近いなと思ったのが、 developer.hatenastaff.com document.querySelector('.title') as HTMLElement; document.querySelector<HTMLElement>('.title'</htmlelement>…
tech-1natsu.hatenablog.com 上記の記事でいける。初めて知りました
qiita.com type InputProps = JSX.IntrinsicElements['input'] たぶんReact.ComponentPropsWithRefでもいける? ginpen.com で、例えばInputコンポーネントを作っていたとして、inputタグに標準で指定できる属性以外にもpropsあるとすると、コンポーネントへ…
TypeScriptで型の条件分岐が色々方法あるの知らなかった… 1つ目、特定のPropsに応じて条件分岐させる。 そもそも、TypeScriptにはConditionalTypeっていうのがある qiita.com こういう例で一番出てくるのはボタンコンポーネントがaタグかbuttonタグか、で指…
qiita.com const englishList = ["aaa", "bbb"] as const type English = typeof englishList[number] こうするとenglishList自体も配列としてfilterとかでチェックするとかに使える ところでtypeof englishList[number]って書き方ってなんなのだろう…ちょっ…
と、レビューで言われまして。 例えば const List = ['first', 'second', 'third'] ['a','b','c'].map((item, index) => ( <Text>List[index]</Text> ) みたいな。 で、これはなぜか。 理由としては 堅牢性が低い 保守性が低い 静的解析しにくい だと。 つまるところ、ind…
qiita.com 上記の記事が参考になります。 qiita.com のように、高さ取得したかったらoffsetHeightとか使うと思いますが、これ丸めちゃって整数になるんですね。まあだいたい計算出来れば良いならそれで良いのですが、 tech.motoki-watanabe.net でparseFloat…
qiita.com const elm = document.querySelector('.elm'); const style: CSSStyleDeclaration = window.getComputedStyle(elm); const lineHeight = style.lineHeight; のように、して、実際に計算された後のCSSの値をとってこれます。 こちらの結果は21pxの…
www.npmjs.com これを入れたのにTypescriptで import ScrollBooster from 'scrollbooster' としても、そもそも'scrollbooster'が見つからない。 どうやら、型定義ファイルがなかったから、でした。 qiita.com www.npmjs.com 今回は@typesから入れられたので…
一番ありそうな場面は、 テーブルで、左列がstickyで固定されていて、2列目以降がスクロール出来るやつ。縦に長いテーブルだと横スクロール出来る入力デバイスを持っていないとスクロールバーをクリックしないとスクロール出来ないので操作がかなりめんどく…
index.stories.tsx importする、Metaがいる import { Story, Meta } from '@storybook/react/types-6-0'; descriptionでStorybookの上の方にそのコンポーネントの説明が出る subComponent指定でこのStoryからそのコンポーネントも見れる export default { ti…
pageディレクトリがあったとして、ただその画面はPCでのみ存在し、SPではルートにリダイレクトさせたい。 react-responsiveとrouterでいけます import { useMediaQuery } from 'react-responsive' import Router from 'next/router' export const page = (pr…
基本肯定文のほうが読みやすいので、 !login ? () : (); ではなく login ? () : (); と書く
tech.motoki-watanabe.net とか書いたのですが、逐一入れるのはしんどいので、 qiita.com こういうのがあるらしいと知りました。これでなにかのパッケージ入れたら型定義パッケージも一緒に入ってくれます。いやこれが正解でしたね、逐一入れるのしんどい。 …
www.npmjs.com github.com qiita.com Reactでレスポンシブするときに普通にStyled-Componentで@media〜とか書いてやるのかなーと思っていたらこれよく使うと。便利ですねこれ。画面幅によって要素がそもそも全然違う時とかはこれでコンポーネントごとそもそ…
.eslintrc.jsonに書いてある設定の "extends": ["eslint:recommended"], で、 onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void に対して 'event' is defined but never used とエラーが出ていました。 TypeScriptで型定義でno-unuse-varsのエラーが出ないよう</htmlbuttonelement>…
type Props = { option?: string; } export const foo: React.FC<Props> = props = { return ( <div>{props.options}</div> ) } foo.defaultProps = { img: 'dummy.jpg', }; で、 型 'string | undefined' を型 'string' に割り当てることはできません。 型 'undefined' を型 '</props>…
JavaScriptの「&&」「||」について盛大に勘違いをしていた件 - Qiita const _perview = Number($body.getAttribute('data-perview')) || 'auto'; えっなにこれ、って思ってた。 Number($body.getAttribute('data-perview'))がtrueであればNumber($body.getAt…