programing

나중에 사용할 수 있도록 TypeScript 개체 구조 정의

topblog 2023. 6. 17. 08:14
반응형

나중에 사용할 수 있도록 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 { ... }
...

인터페이스를 사용할 수 있습니다.

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

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

(플레이그라운드의 코드)

또는 유형 별칭:

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) { ... }

언급URL : https://stackoverflow.com/questions/38990762/typescript-define-object-structure-for-later-use

반응형