2016-08-17 13 views
5

パラメータタイプとして使用できるTypeScriptでオブジェクト構造を定義することは可能ですか?私は何を意味TypeScriptは、後で使用するためのオブジェクト構造を定義します


私はそうのように同じオブジェクト構造を返し(さんが言わせて) 5の機能があります。これに伴う問題は、私がすべてのこのような構造を定義する必要があることである

foo(): { bar: string, baz: boolean, idk: number } { ... } 
bar(): { bar: string, baz: boolean, idk: number } { ... } 
... 

をこのようなオブジェクトを返す関数。

次のようなことが可能ですか?

declare const OBJECT_STRUCTURE: { bar: string, baz: boolean, idk: number } 

foo(): OBJECT_STRUCTURE { ... } 
bar(): OBJECT_STRUCTURE { ... } 
... 

答えて

11

type OBJECT_STRUCTURE = { bar: string, baz: boolean, idk: number } 

の詳細:

interface MyType { 
    bar: string; 
    baz: boolean; 
    idk: number; 
} 

function foo(): MyType { 
    return { 
     bar: "bar", 
     baz: true, 
     idk: 4 
    }; 
} 

code in playground

またはtype alias:TSへ

type MyType = { 
    bar: string; 
    baz: boolean; 
    idk: number; 
} 

function foo(): MyType { 
    return { 
     bar: "bar", 
     baz: true, 
     idk: 4 
    }; 
} 

code in playground

2

本当にネイティブソリューションです - インタフェース

export interface IMyObject { 
    bar: string; 
    baz: boolean; 
    idk: number; 
} 
を宣言210

そして、それは簡単

foo(): IMyObject { ... } 
bar(): IMyObject { ... } 

または

other(obj: IMyObject) { ... } 
再宣言しなくても、どこにでも再利用できます
関連する問題