[フレーム]
はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

気に入った記事をブックマーク

  • 気に入った記事を保存できます
    保存した記事の一覧は、はてなブックマークで確認・編集ができます
  • 記事を読んだ感想やメモを書き残せます
  • 非公開でブックマークすることもできます
適切な情報に変更

エントリーの編集

loading...

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。

タイトルガイドライン

このページのオーナーなので以下のアクションを実行できます

タイトル、本文などの情報を
再取得することができます
コメントを非表示にできます コメント表示の設定

ブックマークしました

ここにツイート内容が記載されます https://b.hatena.ne.jp/URLはspanで囲んでください

Twitterで共有

ONにすると、次回以降このダイアログを飛ばしてTwitterに遷移します

147users がブックマーク コメント 13

ガイドラインをご確認の上、良識あるコメントにご協力ください

0 / 0
入力したタグを追加

現在プライベートモードです 設定を変更する

おすすめタグタグについて

よく使うタグ

私がTypeScriptで `interface` よりも `type` を好む理由 - kosui

147 users kosui.me

ガイドラインをご確認の上、良識あるコメントにご協力ください

0 / 0
入力したタグを追加

現在プライベートモードです 設定を変更する

おすすめタグタグについて

よく使うタグ

はてなブックマーク

はてなブックマークで
関心をシェアしよう

みんなの興味と感想が集まることで
新しい発見や、深堀りがもっと楽しく

ユーザー登録

アカウントをお持ちの方はログインページ

記事へのコメント13

  • 注目コメント
  • 新着コメント
yash268925
tsの型は構造的部分型なのだから、そもそも「しろまるしろまるしかもたない」という思い込みが危険なのでは。type Userにしていようが、いらんもの(hashedPassword)が入っててもUserで通るし。

その他
daketake
言語設計どおりインターフェースにあたるものはinterface、型にあたるものはtypeで書くだけだよ。下手に代用しようとすると疲弊するだけだと思うな

その他
hatest
拡張可能なことを意図する場合はinterface 、拡張できない型を意図する場合はtypeで使い分けてるな。メンバーには「型を宣言する時は、まず基本typeで宣言してもらって、拡張可能にするならinterfaceに変えてくれ」と言う

その他
turanukimaru
TSは型で宣言していないものを持っていることが多いのと、内部構造をそのままAPIの外に出すのは内部構造を変更しにくくなるので明示的に出力データを作ったほうが良いと思うが。DBアクセス後のEntityは特に色々入りがち

その他
Fushihara
既存のライブラリの型を追いかけている時も、interfaceで書かれているとこの型の定義はこういう意味だ と確定的に調べる事が出来なくなるんだよね

その他
jintrick
"私が指摘したいのは、「型定義ファイルを見に行くだけでは、その型が最終的にどのような形状になるか断定できない」という interface の特性そのものが持つリスクです"

その他
Xibalba
とてもわかりやすい

その他
hylom
そもそもインターフェイスはそこで宣言されているプロパティやメソッドを持っていることを保証するためのものなんだけどTSにおいてはクラスやデータ型を宣言するもののように認識されているのではないか問題

その他
repon
今日ChatGPTに「typeよりinterfaceが良いんでしょ?」って訊いたら叱られが起きた

その他
dbr0
interfaceの宣言のマージ、一見非合理だけど既存の組み込みオブジェクトをprototype拡張してるJSライブラリを使う時にこれが無いと詰む場合があるんだよな。anyと同じで積極的に使うべきで無いが必要悪な機能だと思ってる。

その他
daketake
daketake 言語設計どおりインターフェースにあたるものはinterface、型にあたるものはtypeで書くだけだよ。下手に代用しようとすると疲弊するだけだと思うな

2025年10月24日 リンク

その他
akymrk
"アプリケーションのデータ構造」である、APIのレスポンス、DBのエンティティ、ドメインオブジェクトなどを定義する際には、その型が「閉じている(closed)」こと、つまり「定義ファイルに書かれているプロパティがす

その他
jintrick
jintrick "私が指摘したいのは、「型定義ファイルを見に行くだけでは、その型が最終的にどのような形状になるか断定できない」という interface の特性そのものが持つリスクです"

2025年10月24日 リンク

その他
hatest
hatest 拡張可能なことを意図する場合はinterface 、拡張できない型を意図する場合はtypeで使い分けてるな。メンバーには「型を宣言する時は、まず基本typeで宣言してもらって、拡張可能にするならinterfaceに変えてくれ」と言う

2025年10月24日 リンク

その他
turanukimaru
turanukimaru TSは型で宣言していないものを持っていることが多いのと、内部構造をそのままAPIの外に出すのは内部構造を変更しにくくなるので明示的に出力データを作ったほうが良いと思うが。DBアクセス後のEntityは特に色々入りがち

2025年10月24日 リンク

その他
yash268925
yash268925 tsの型は構造的部分型なのだから、そもそも「しろまるしろまるしかもたない」という思い込みが危険なのでは。type Userにしていようが、いらんもの(hashedPassword)が入っててもUserで通るし。

2025年10月24日 リンク

その他
Fushihara
Fushihara 既存のライブラリの型を追いかけている時も、interfaceで書かれているとこの型の定義はこういう意味だ と確定的に調べる事が出来なくなるんだよね

2025年10月24日 リンク

その他
ka-ka_xyz
tsのinterfaceをマージする仕様は個人的にかなりダメなやつだと思う(拡張が必要なら普通に extendsで良さそうな

その他
soulfulmiddleagedman
私も何度も調べてるなぁ。

その他

注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

リンクを埋め込む

以下のコードをコピーしてサイトに埋め込むことができます

プレビュー
アプリのスクリーンショット
いまの話題をアプリでチェック!
  • バナー広告なし
  • ミュート機能あり
  • ダークモード搭載
アプリをダウンロード

関連記事

usersに達しました!

さんが1番目にブックマークした記事「私がTypeScriptで ...」が注目されています。

気持ちをシェアしよう

ツイートする

私がTypeScriptで `interface` よりも `type` を好む理由 - kosui

はじめに TypeScriptで型を定義する際、interface と type のどちらを使うべきか。これは、多くの開発現... はじめに TypeScriptで型を定義する際、interface と type のどちらを使うべきか。これは、多くの開発現場で一度は議論になるテーマではないかと思います。 世の中の多くのドキュメントや記事では、クラスへの implements のしやすさや、interface が持つ「宣言のマージ(Declaration Merging)」の利便性が紹介されることもあり、interface の利用が推奨されるケースもよく見かけます。 しかし、特にサーバサイドアプリケーションや、ある程度規模のあるシステムを開発する上で、私はこの「宣言のマージ」機能が、時として予期せぬ挙動や、場合によってはセキュリティ上のリスクを静かにもたらす要因になると感じています。 今回は、なぜ私がプロダクトコードにおいて interface の積極的な使用を避け、type エイリアスを好んで使うのか、具体的なシナリオ

ブックマークしたユーザー

  • Xibalba2025年10月27日 Xibalba
  • tmg19982025年10月27日 tmg1998
  • sora05132025年10月26日 sora0513
  • eagleyama2025年10月26日 eagleyama
  • timdaik_tech2025年10月26日 timdaik_tech
  • yug12242025年10月25日 yug1224
  • hush_in2025年10月25日 hush_in
  • vndn2025年10月25日 vndn
  • masayuki-as2025年10月25日 masayuki-as
  • onori1082025年10月25日 onori108
  • tokg2025年10月25日 tokg
  • kk-mpsg2025年10月25日 kk-mpsg
  • snowknight07132025年10月25日 snowknight0713
  • Ehren2025年10月25日 Ehren
  • shior7182025年10月25日 shior718
  • powerbombkun2025年10月25日 powerbombkun
  • xef2025年10月24日 xef
  • satoshie2025年10月24日 satoshie
すべてのユーザーの
詳細を表示します

ブックマークしたすべてのユーザー

同じサイトの新着

同じサイトの新着をもっと読む

いま人気の記事

いま人気の記事をもっと読む

いま人気の記事 - テクノロジー

いま人気の記事 - テクノロジーをもっと読む

新着記事 - テクノロジー

新着記事 - テクノロジーをもっと読む

同時期にブックマークされた記事

いま人気の記事 - 企業メディア

企業メディアをもっと読む

はてなブックマーク

公式Twitter

はてなのサービス

Copyright © 2005-2025 Hatena. All Rights Reserved.
設定を変更しましたx

AltStyle によって変換されたページ (->オリジナル) /