Est-il possible de définir une structure d'objet en TypeScript pouvant être utilisée ensuite comme type de paramètre?
Ce que je veux dire:
J'ai (disons) 5 fonctions qui retournent la même structure d'objet comme ceci:
foo(): { bar: string, baz: boolean, idk: number } { ... }
bar(): { bar: string, baz: boolean, idk: number } { ... }
...
le problème avec cela est que je dois définir cette structure à chaque fonction qui renvoie un objet comme celui-ci.
Est-il donc possible de faire quelque chose comme ce qui suit?
declare const OBJECT_STRUCTURE: { bar: string, baz: boolean, idk: number }
foo(): OBJECT_STRUCTURE { ... }
bar(): OBJECT_STRUCTURE { ... }
...
Vous pouvez utiliser une interface :
interface MyType {
bar: string;
baz: boolean;
idk: number;
}
function foo(): MyType {
return {
bar: "bar",
baz: true,
idk: 4
};
}
Ou un type alias :
type MyType = {
bar: string;
baz: boolean;
idk: number;
}
function foo(): MyType {
return {
bar: "bar",
baz: true,
idk: 4
};
}
Est-il donc possible de faire quelque chose comme ce qui suit
Une simple déclaration type
:
type OBJECT_STRUCTURE = { bar: string, baz: boolean, idk: number }
Plus: https://basarat.gitbooks.io/TypeScript/content/docs/types/type-system.html
Une solution vraiment native pour TS est - déclarer l'interface
export interface IMyObject {
bar: string;
baz: boolean;
idk: number;
}
Et cela pourrait être facilement réutilisé partout, sans le redéclarer
foo(): IMyObject { ... }
bar(): IMyObject { ... }
ou
other(obj: IMyObject) { ... }