Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Consider `implements MyInterface` syntax

オープン
#14 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
25/100
issue の種類
機能追加
明瞭さ
説明が足りない
活発さ
停滞
技術スタック
ruby

調査の方向性

提案されている Notifier と SlackNotifier の例から始め、参照されている Rubydex/RubyLSP の互換性に関する懸念を確認します。プロジェクトで implements を include のエイリアスとして採用すべきか、どのようなツールサポートが必要か、そして完了をどのように検証するかを判断します。

索引モデルが issue の本文から書いたものです。

説明

Would we want this?

module Notifier
  interface!

  # ...
end

class SlackNotifier
  implements Notifier # ✨
  
  # ...
end

The implementation would literally just be Module.alias_method(:implements, :include)

Pros:

  1. Reads really nicely, feels native
  2. Tools can instantly know that Notifier is an interface, without needing to resolve it first (it likely lives in another file)

Cons:

  1. Would need special support in Rubydex/RubyLSP. It wouldn't be understood by other tools by default.
    • Most tools that handle Ruby understand module inclusion, so they'd know the interface's methods become available on the class. They wouldn't know that about this implements keyword without having bespoke support built for it.

Originally posted by @amomchilov in https://github.com/Shopify/type_toolkit/pull/2#discussion_r2850115519

主要言語
Ruby
スター
3
フォーク
5
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

Shopify/type_toolkit のほかの issue

Shopify/type_toolkit の issue をすべて見る

似ている issue

Ruby の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。