2/1(土)
していたら土曜日が終わった。
OpenToonzの1.4.0が出たのでLinuxでビルドしてみた。ドキュメント通りで特に問題なし。
動画サイトの再生エリアのスクショをワンクリックで撮れるようにしたくて調べていたんだけど、ざっくりMDNを読んだ感じセキュリティ上の理由でクライアント側だけではどうにもならないっぽい。
その他、寝たり起きたり鍋作ったりDota2したりしてたら1日が終わってた。僕は休日は無計画に浪費する方が好きだ。あまり褒められたことではないが…。
教えちゃお
1/9(木)
http://www.typescriptlang.org/docs/handbook/interfaces.html
ReadonlyArray<T>
というやつもあるぞ要求されているプロパティがあるかだけをチェックする
とoptionalを組み合わせると、optional propertyのプロパティ名のtypoが型エラーにならなくなるexcess property checking
をする
Object literal may only specify known properties, but 'hoge' does not exist in type 'Fuga'.
excess property checking
を回避する方法
as
[propName: string]: any;
を足しておく1/8(水)
const createFakeFuga = (num: number) => ({ a: num, c: "hoge" });
const func = (array: number[]): { a: number }[] => array.map(createFakeFuga);
{ a: number }
型に { a: 1, c: "hoge" }
を入れても怒られない。ただしリテラルで代入したときだけは怒られる。詳しくは仕様を読もう。
1/4(土)
久々に絵を描いていた。ニコ動見たり、ちょっとしたChrome拡張を書いたり。chibat氏のchrome-extension-typescript-starterがとても勉強になるサンプルだった(jQueryはなくしていきたいが)。
1/3(金)
自宅の気温や湿度を表示するwebアプリをいろいろとリファクタリングしていた。APIを叩いたレスポンスには型の保証がないが、 axios.get
にジェネリクスを与えておけばその型が来たという想定で書くことができていい感じだった。このコードで渡すジェネリクスを更に外から与えられるT型にしているのは、インフラ層でドメイン層で定義した型を使ってはいけないから(ホンマか?)。
moment.jsはめちゃ便利。JavaScriptの組み込みのURLオブジェクトはパスの結合が便利にできるかと思いきやそうでもない。ホストとパスの結合だけ。
12/18(水)
TypeScript+ReactのプロジェクトにESLintとprettierを入れた。ESLintのプラグインを上手く組み合わせていくテクニックが難しかった。
結論はこんな感じ。
.eslintrc.json
{
"parser": "@typescript-eslint/parser",
"parserOptions": {
"project": "tsconfig.json",
"sourceType": "module"
},
"extends": [
"plugin:@typescript-eslint/recommended",
"plugin:prettier/recommended",
"plugin:react/recommended"
]
}
yarn lint
で能動的にlintを実行できるようにしつつ、lint-stagedとhuskyでcommit時にも仕込んだ。
※この記事は『ほろよい もも』を飲んで書かれた。
月の始めに強い意志で(ほぼ)定時退社。制度上定時はないが自分で11時から20時を勤務時間と決めている。
いろいろな事情でSlackのワークスペースが増えてきたのでLinux用のアプリケーションをインストールしたのだが、ワークスペースにログインできずにいる。ブラウザでログインした後アプリケーションに処理が移らない。
仕事でTypeScriptをやってはいるが、趣味開発で初めて裸のtscコマンドによるコンパイルをやった。コンパイルのバージョンがどうなっているのかよくわからない。前者も後者もコンパイルは通るのに前者しか動かなかったりする。
import * as Hoge from "hoge"; import Hoge from "hoge";
完全に酒に酔って意味不明ムーブ繰り出してる。間違ってaccess tokenをpushしてしまったので定石どおりリポジトリ削除→再作成→pushをやったのだが、修正をaddしないままcommit --amendしていたので無意味だった。やり直し。
※この記事はビールを2本飲んで書かれた。
という気分になっているのだなあ。
今月末を持ちましてドワンゴを退職します。本日が最終出社日ですので、退職エントリを書きました。https://t.co/0AVDqB95lP
— Toshihiro Shimizu (@meso) 2019年6月28日
mesoさんには2017年のインターンのときに初めてお会いした。中間発表会に遅れてきたとき、席は用意してあったのに入り口の近くの床に座っていた。当時人事部長という立場にありながら偉ぶらず人を緊張させない振る舞いとしてとても印象に残った。フランクな人柄と組織の中核としての毅然とした態度の両方を尊敬している。
はてなブログに投稿しました
株式会社ドワンゴを退職します - kmizuの日記 https://t.co/OeorHfRiAm #はてなブログ— Kota Mizushima (@kmizu) 2019年6月28日
kmizuさんは新卒Scala研修の講師だった。Scalaのことなら何でも知っている。言語の第一人者から教わることで、細かな仕様にも妥当性や事情があることがわかった。動けばいいやのアマチュアではなく、隅々まで理解し尽くしたプロとしての仕事を求められることを実感した。
お二人とも新天地でのご活躍を祈っています。
くる人は誰かって?それは僕です。