mcpField
R
roblox-luau-types

roblox-luau-types

github.com/tabooharmony開発1382.1k 回インストール2 週間前に更新
リポジトリ

roblox-luau-types について

Roblox Luauの型注釈、推論、絞り込み、型ソルバーを扱うリファレンススキルです。型付きLuauコードの作成やレビューに役立ち、厳密性と信頼境界の指針も示します。

主な機能

  1. 01厳密性モードの指針
  2. 02推論と注釈の実践
  3. 03テーブル・ユニオン・ジェネリクス
  4. 04型の絞り込みとエクスポート
  5. 05新しい型ソルバーの要件

活用シーン

  1. 01Luauプロジェクトの厳密性選択
  2. 02型注釈やキャストのレビュー
  3. 03タグ付きユニオンによる状態設計

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/tabooharmony/roblox-brain --skill roblox-luau-types

インストール後、Claude Code で/roblox-luau-typesを入力して読み込まれたか確認します。

同梱ファイルreferences/full.md

詳細

Luau の型システム

読み込むタイミング

Luau の注釈、推論、絞り込み、厳格モード、エクスポート、ソルバー機能を扱う場合に読み込みます。構文については roblox-luau-core、ライフサイクル/スケジューリングについては roblox-luau-patterns を参照してください。

クイックリファレンス

厳格モード: 保守対象のコードには --!strict、移行中は --!nonstrict、レガシーコードまたは生成コードに限り --!nocheck を使用します。ディレクティブとプロジェクト設定でモードが選択されるため、全体に適用されるデフォルトがあると想定しないでください。

新しいソルバーの要件: keyof、rawkeyof、setmetatable<T, M>、type function、read メンバーには新しい型ソルバーが必要です。nocheck/nonstrict プロジェクトではデフォルトで有効ですが、strict プロジェクトでは Workspace.UseNewLuauTypeSolver = Enabled(Scripting)が必要です。ここでのエラーは通常、構文ではなくソルバーが適切でないことを意味します。

推論の考え方: まず推論させ、境界(引数、戻り値、エクスポート)に注釈を付けます。すべてのローカル変数に注釈を付けないでください。

シール済みテーブルと未シールテーブル: 注釈のないローカルテーブルは、注釈が付くか、関数から返されるか、スコープが終了するまで、新しいフィールドを追加できる状態のままです。注釈を付けるとシールされます。注釈を付ける前にテーブルを完成させてください。型付き関数にテーブルを渡してもシールされません。

ユニオン: local id: string | number はユニオンです。タグ付きユニオン(type State<T> = {kind:"loading"} | {kind:"ready", value:T})を優先し、kind で判別して絞り込みます。

絞り込み: typeof、IsA、アサーション、タグ付き判別子によって型が絞り込まれます。例については full.md を参照してください。

欠落するキー: ルックアップでキーが見つからない可能性がある場合は { [K]: V? } を使用し、使用前に絞り込みます。

閉じた語彙: リテラルユニオンを優先します。never によるチェックで、分岐の不足を検出できます。require は静的に解決できる状態に保ってください。実践的なガイダンスについては full.md を参照してください。

ジェネリック: 入力から出力への型が重要な場合に使用します。例:function first<T>(list: {T}): T?、または type Result<T> = {success: boolean, value: T?}。決して any で置き換えないでください。

型のエクスポート: モジュール境界では export type Foo = {...} を使用し、利用側では Types.Foo を使います。

オブジェクトの型付け: typeof(setmetatable({} :: CounterData, Counter)) で self を正確に型付けできます。新しいソルバーでは setmetatable<T, M> を直接使用できます。

キャスト(::): 過度に一般化された推論を絞り込むために使用し、エラーを隠すためには使用しないでください。

信頼境界: 注釈が契約する相手はコンパイラーであり、実行時データではありません。Remotes、DataStores、HttpService、属性には引き続きチェックが必要です。信頼できる境界の内側では、型に処理を任せてください。

レビュー: 隠れた any、早すぎるシール、チェックされていないキャスト、ソルバーを考慮しない書き換えがないことを確認してください。

完全なリファレンスについては references/full.md を参照してください。

コメント