以下のC#のコードをTypescriptで実現する方法を教えて下さい(継承しているインターフェイスの確認)

実現したいこと

以下のC#のコードをTypescriptで実現する方法を教えて下さい(継承しているインターフェイスの確認)

発生している問題・分からないこと

普段、C#でコードを書いている者ですが、急遽TypeScriptにてコードを書かなければならなくなりました。
普段どおりに設計して、TypeScriptでそれを実現しようとしたところ、クラスのプロパティでの判定や、instanceofの判定ばかり情報として出てきてしまい、私が実現したいことのやり方がほとんど出てきませんでした。

諦めを付けるために藁にもすがる思いで質問します。

[背景]
なんでこんなムダはことをしてるのか疑問に思われると思うので、
一応背景もお伝えすると、あえて実装のないインターフェイスを継承することで、
要件定義でモデリングされたモデルに素直なアーキテクチャおよびコードを表現することができます。
私としてはあまりモデルと実装のギャップを発生させたくないのです。

何卒よろしくおねがいします。

該当のソースコード

C#

1using System;2 3interface basekey{4 string key {get;}5}6 7interface hoge : basekey{8 9}10 11interface foo : basekey{12 13}14 15class hooo : hoge{16 public string key => "hhhh";17}18 19 20public class HelloWorld 21{22 public static void Main(string[] args)23 {24 25 var b = new hooo();26 Assert.Equals(true,b is hoge);27 Assert.Equals(false,b is foo);28 }29}

試したこと・調べたこと

上記の詳細・結果

いろいろぐぐりました。
https://stackoverflow.com/questions/14425568/interface-type-check-with-typescript
とか
一応copilotの結果(間違えてる)

interface BaseKey {
key: string;
}

interface Hoge extends BaseKey {
}

interface Foo extends BaseKey {
}

class Hooo implements Hoge {
public get key(): string {
return "hhhh";
}
}

class Judge {
public isHooo(b: BaseKey): boolean {
return b instanceof Hoge;
}
}
AI で生成されたコード。ご確認のうえ、慎重にご使用ください。FAQ で詳細を確認。
こちらのTypescriptコードは、C#のクラスとインターフェースを適切に変換しています。HoooクラスはHogeインターフェースを実装しており、JudgeクラスのisHoooメソッドはHoge型のオブジェクトを判定しています。12

補足

特になし

コメントを投稿

0 コメント