パラメーター型として使用できる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 { ... }
...
interface を使用できます。
interface MyType {
bar: string;
baz: boolean;
idk: number;
}
function foo(): MyType {
return {
bar: "bar",
baz: true,
idk: 4
};
}
( 遊び場のコード )
または type alias :
type MyType = {
bar: string;
baz: boolean;
idk: number;
}
function foo(): MyType {
return {
bar: "bar",
baz: true,
idk: 4
};
}
( 遊び場のコード )
だから、次のようなことをすることは可能ですか
単純なtype
宣言:
type OBJECT_STRUCTURE = { bar: string, baz: boolean, idk: number }
詳細: https://basarat.gitbooks.io/TypeScript/content/docs/types/type-system.html
TSの本当にネイティブなソリューションは-インターフェイスを宣言することです
export interface IMyObject {
bar: string;
baz: boolean;
idk: number;
}
そして、再宣言することなく、どこでも簡単に再利用できます。
foo(): IMyObject { ... }
bar(): IMyObject { ... }
または
other(obj: IMyObject) { ... }