16
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

VRChatAdvent Calendar 2018

Day 24

Node.jsでVRChatAPIクライアントを作った

Posted at

VRChat APIのNode.jsモジュールをつくりました途中

つくりました。
vrchat-client
初めてTypeScript使ったり、NPMモジュール公開したりした気づきなんかを
クリスマスイブですが他にやることもないので書いていきます。

TypeScriptは良い

今までなんとなく別にJSでいいしと思って使わなかったが今回使ってみたら好きになってしまった
いくらでも書かれた内容ではあるが再度自分が思ったことをまとめてみる

良いと思った点

型指定ができる

  • 型指定できるJSがこんなに書きやすいとは思わなかった
  • JSではJSDocでコメントとして書かないといけなかったことがほとんどコード内に埋め込める
    • 型指定でごちゃごちゃすると思ったらむしろスッキリしたコードになる
  • そもそも型をわざわざ書くことが少ない
    • 変数宣言は型推論でほとんどどうにかなるのでJSと同じように書きながらIDE補完に肖れる
    • 関数定義時はしっかり書く
  • 型の定義、エイリアス定義が楽
    • 細かいObject設定はInterfaceでできるしtype句でエイリアスも簡単

Classが思い通り書ける

  • JSでは意味わからない制約が多くてクラスが思い通り書けない
  • private等のアクセス修飾子があり明示的に書きやすい
  • フィールド宣言ができる
  • Interfaceがある

これだけって?
いやいやめちゃくちゃ変わる。

どういうときに使うとよさそうか

  • オブジェクト指向的に書く時
  • 大きめなシステムを作る時 (特にNodeでサーバサイド実装とか)
  • ライブラリとかフレームワーク作る時
    • 使う側はIDEの補完があって使いやすくなる

もう全部TSでいいんじゃないかな

書いてみてもうJSに戻れなくなりました。
めんどいから・・・と敬遠している方は一度触ってみるといいと思います。
以上、ここまでTypeScriptの感想


npmモジュールを公開しようとしたが失敗

初めてnpmモジュールを公開してみようとした・・・が、失敗!
解決したらこの記事を更新していこうと思います。:bow:

原因調査中

  • TravisCIのテストがほぼ通らない
    • 何故かテストするたびに結果が違う・・・
  • npm publishしたやつがimportできない
    • tsconfig.jsonを正しく理解できていない気がする

使用例

まとめ

  • TypeScriptはいいぞ
  • npmモジュール公開思ったより難しい・・・
16
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?