TypeScriptインターフェイスから「空の」オブジェクトを作成することは可能ですか?

DarkLite1

TypeScriptインターフェイスとして定義された非常に大きなオブジェクトがあるとします。

interface AccountInterface {
  accountIdentifier?: string;
  sid?: string;
  idToken?: {
    aio?: string;
  };
  idTokenClaims?: {
      aio?: string;
  };
}

オブジェクトには常にそのプロパティとサブプロパティを持たせたいです。それらは、文字列または空の文字列のいずれかです。

let account = {
  accountIdentifier: "",
  sid: "",
  idToken: {
    aio: "",
  },
  idTokenClaims: {
    aio: "",
  },
};

私がこれを行うことが可能であっただろうと私が思った他の質問を読んで:

const emptyAccount = {} as AccountInterface

console.log('emptyAccount ', emptyAccount)
console.log('emptyAccount.sid ', emptyAccount.sid)

ただし、これでは、必要に応じてすべてのプロパティが空の文字列であるオブジェクトが作成されるわけではありません。

このようなことが可能であれば素晴らしいので、インターフェイス用と空の文字列プロパティを持つオブジェクト用のように、コード内でオブジェクトを複製する必要はありません。

ダンジガー

classそれを実装interfaceするを作成し、デフォルト値を追加し、それを使用してオブジェクトを作成できます。同じ構造を他の場所でまだ書き直していますが、これは1回だけ行う必要があり、必要にconstructor応じて使用してオブジェクトを異なる値で初期化できます

interface AccountInterface {
  accountIdentifier?: string;
  sid?: string;
  idToken?: {
      aio?: string;
  };
  idTokenClaims?: {
      aio?: string;
  };
}

class Account implements AccountInterface {
  accountIdentifier = '';
  sid = '';
  idToken = { aio: '' };
  idTokenClaims = { aio: '' };
}

const emptyAccount = new Account();

また、@ apokryfosで指摘されているように、クラスを使用してオブジェクトを入力することもできるため、クラスを使用して作成されていないインスタンスを実装するオブジェクトを作成instanceするclass場合を除いてとの両方を定義する必要はありません(それらには、クラスで定義されたメソッドがありません)。

class使用を避け、afunction使用して同様のことを行う場合は、次のことができます。

function createAccount(): AccountInterface {
  return {
    accountIdentifier = '';
    sid = '';
    idToken = { aio: '' };
    idTokenClaims = { aio: '' };
  };
}

const emptyAccount = createAccount();

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

関数のシグネチャを表すオブジェクト/クラス/インターフェイスを作成することは可能ですか?

分類Dev

EasyMockで複数のインターフェースを実装するモックオブジェクトを作成することは可能ですか?

分類Dev

Typescriptで、既存のオブジェクトから「タイプ」を宣言することは可能ですか?

分類Dev

TypeScriptでJavaScriptオブジェクトをインスタンス化することは可能ですか?

分類Dev

XMLファイルから複数のオブジェクトを作成することは可能ですか?

分類Dev

柔軟な数/タイプのキーを許可するオブジェクトインターフェイスをTypeScriptで作成することは可能ですか?

分類Dev

Ninjectで作成され、インターフェイスAとして登録されているが、インターフェイスBを実装しているすべてのオブジェクトを見つけることは可能ですか?

分類Dev

可能なキーを同時に推測し、オブジェクト値インターフェイスを適用することは可能ですか?

分類Dev

Typescriptは、インターフェイスに基づいて、別のオブジェクトからオブジェクトを作成します

分類Dev

OOPSの概念:オブジェクト参照をインターフェイスに渡すことと、C#でクラスオブジェクトを作成することの違いは何ですか?

分類Dev

同じオブジェクトの異なるインスタンスを作成し、Koinのget()関数にパラメーターを渡すことでそれらにアクセスすることは可能ですか?

分類Dev

Pythonのモジュールオブジェクトからインポートステートメントを生成することは可能ですか?

分類Dev

PHP同じオブジェクトの2つ以上のインスタンスを作成していますが、最初のオブジェクトから情報を取得することは可能ですか?

分類Dev

typescriptでオブジェクトを作成するときに、インターフェイスの特定のプロパティを無視しますか?

分類Dev

glibc mallocが異なる「オブジェクト」からのポインターを比較することを可能にするのは何ですか?

分類Dev

ポインタのポリモーフィックコンテナから「正確な」オブジェクトを返すことは可能ですか?

分類Dev

TypeScriptの他の複数のインターフェイスからインターフェイスを継承することは可能ですか?

分類Dev

他のクラスのイベントのオブジェクトを更新することは可能ですか?

分類Dev

実行可能ファイルからオブジェクトファイルのリンクを解除することは可能ですか?

分類Dev

あるクラウドオブジェクトストレージインスタンスから別のインスタンスにCopyObjectをコピーすることは可能ですか?バケットはさまざまな地域にあります

分類Dev

配列をループすることでオブジェクトインスタンスにデータを入力することは可能ですか?

分類Dev

Typescript:インターフェイスのタイプであるオブジェクトが別のオブジェクトと等しいかどうかを比較します同じインターフェイスタイプを持っています

分類Dev

既存のオブジェクトからインスタンス化することはできますか?

分類Dev

Scalaでは、ジェネリック型Tのオブジェクトをインスタンス化することは可能ですか?

分類Dev

何らかのインターフェースを実装するすべてのオブジェクトのメソッドを呼び出すことは可能ですか?

分類Dev

TClassから作成されたオブジェクトからインターフェイスを取得するにはどうすればよいですか?

分類Dev

TypeScript-クラスのオブジェクト定義からインターフェイスを見ることができません

分類Dev

PHPクラスは、実装しているインターフェイス型のオブジェクトを返すことができますか?

分類Dev

TypeScriptでジェネリックマップオブジェクトタイプを作成することは可能ですか?

Related 関連記事

  1. 1

    関数のシグネチャを表すオブジェクト/クラス/インターフェイスを作成することは可能ですか?

  2. 2

    EasyMockで複数のインターフェースを実装するモックオブジェクトを作成することは可能ですか?

  3. 3

    Typescriptで、既存のオブジェクトから「タイプ」を宣言することは可能ですか?

  4. 4

    TypeScriptでJavaScriptオブジェクトをインスタンス化することは可能ですか?

  5. 5

    XMLファイルから複数のオブジェクトを作成することは可能ですか?

  6. 6

    柔軟な数/タイプのキーを許可するオブジェクトインターフェイスをTypeScriptで作成することは可能ですか?

  7. 7

    Ninjectで作成され、インターフェイスAとして登録されているが、インターフェイスBを実装しているすべてのオブジェクトを見つけることは可能ですか?

  8. 8

    可能なキーを同時に推測し、オブジェクト値インターフェイスを適用することは可能ですか?

  9. 9

    Typescriptは、インターフェイスに基づいて、別のオブジェクトからオブジェクトを作成します

  10. 10

    OOPSの概念:オブジェクト参照をインターフェイスに渡すことと、C#でクラスオブジェクトを作成することの違いは何ですか?

  11. 11

    同じオブジェクトの異なるインスタンスを作成し、Koinのget()関数にパラメーターを渡すことでそれらにアクセスすることは可能ですか?

  12. 12

    Pythonのモジュールオブジェクトからインポートステートメントを生成することは可能ですか?

  13. 13

    PHP同じオブジェクトの2つ以上のインスタンスを作成していますが、最初のオブジェクトから情報を取得することは可能ですか?

  14. 14

    typescriptでオブジェクトを作成するときに、インターフェイスの特定のプロパティを無視しますか?

  15. 15

    glibc mallocが異なる「オブジェクト」からのポインターを比較することを可能にするのは何ですか?

  16. 16

    ポインタのポリモーフィックコンテナから「正確な」オブジェクトを返すことは可能ですか?

  17. 17

    TypeScriptの他の複数のインターフェイスからインターフェイスを継承することは可能ですか?

  18. 18

    他のクラスのイベントのオブジェクトを更新することは可能ですか?

  19. 19

    実行可能ファイルからオブジェクトファイルのリンクを解除することは可能ですか?

  20. 20

    あるクラウドオブジェクトストレージインスタンスから別のインスタンスにCopyObjectをコピーすることは可能ですか?バケットはさまざまな地域にあります

  21. 21

    配列をループすることでオブジェクトインスタンスにデータを入力することは可能ですか?

  22. 22

    Typescript:インターフェイスのタイプであるオブジェクトが別のオブジェクトと等しいかどうかを比較します同じインターフェイスタイプを持っています

  23. 23

    既存のオブジェクトからインスタンス化することはできますか?

  24. 24

    Scalaでは、ジェネリック型Tのオブジェクトをインスタンス化することは可能ですか?

  25. 25

    何らかのインターフェースを実装するすべてのオブジェクトのメソッドを呼び出すことは可能ですか?

  26. 26

    TClassから作成されたオブジェクトからインターフェイスを取得するにはどうすればよいですか?

  27. 27

    TypeScript-クラスのオブジェクト定義からインターフェイスを見ることができません

  28. 28

    PHPクラスは、実装しているインターフェイス型のオブジェクトを返すことができますか?

  29. 29

    TypeScriptでジェネリックマップオブジェクトタイプを作成することは可能ですか?

ホットタグ

アーカイブ