2016-08-17 12 views
5

Czy możliwe jest zdefiniowanie struktury obiektu w TypeScript, która może być następnie użyta jako typ parametru?TypeScript definiuje strukturę obiektu do późniejszego wykorzystania.

Co to znaczy:
mam (powiedzmy) 5 funkcji, które zwracają taką samą strukturę obiektu tak:

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

problem polega na tym, że mam do zdefiniowania tej struktury na każdym funkcja, która zwraca taki obiekt.

Czy można wykonać następujące czynności?

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

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

Odpowiedz

11

Można użyć interface:

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

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

(code in playground)

Albo type alias:

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

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

(code in playground)

2

Naprawdę natywne rozwiązanie TS - stwierdzenie interfejs

export interface IMyObject { 
    bar: string; 
    baz: boolean; 
    idk: number; 
} 

A, które mogą być łatwo ponownie wykorzystane wszędzie, bez ponownego deklarowania

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

lub

other(obj: IMyObject) { ... } 
Powiązane problemy