source

typescript 안에 있는 객체의 배열을 어떻게 선언합니까?

nicesource 2023. 7. 3. 22:56
반응형

typescript 안에 있는 객체의 배열을 어떻게 선언합니까?

개체의 배열을 매개 변수로 사용하는 함수를 지정하고 싶지만 개체에 대해 정의된 특정 유형(일종의 "익명 유형")이 없습니다.

bagTotal = (products) => {
 // function does stuff
}

저는 제가 할 수 있다는 것을 압니다.

bagTotal = (products: any[]) => {
 // function does stuff
}

하지만 이것은 제가 원하는 것보다 조금 더 여유롭습니다: 타자기에 엄격해지는 것입니다.

products는 동일한 모양의 개체의 배열입니다. 모든 개체에는 이름, 가격 및 설명이 있습니다.

제가 그것을 어떻게 선언할 수 있습니까?

저는 다음과 같은 것을 하고 싶습니다.

bagTotal = (products: [{name: string, price: number, description: string}]) => {
 // function does stuff
}

하지만 그것은 옳지 않습니다.어떻게 신고해야 하나요?

거의 다 왔습니다. 브래킷의 위치가 잘못되어 있습니다.

{name: string, price: number, description: string}[]

당신이 가지고 있던 방식이 완전히 틀린 것은 아니지만, 그것은 다른 것을 의미합니다: 그것은 이 유형의 정확히 하나의 항목을 가진 배열을 의미합니다.


또한 인터페이스에 압축을 푸는 것이 좋습니다. 그러면 유형을 재사용할 수 있고 읽기 쉽게 만들 수 있습니다.

interface Product {
    name: string;
    price: number;
    description: string;
}

const products: Product[];

일반 배열 유형 Array<elemType>개체 배열을 선언하는 간단한 방법을 제공합니다.

bagTotal = (products: Array<{name: string, price: number}>) => {
   ...
}

클래스 "제품"을 선언해야 다음과 같은 제품 배열을 선언할 수 있습니다.

products: Product[];

다음과 같은 매개 변수로 전달합니다.

bagTotal = (products: Product[]) => {
 // function does stuff
}

클래스를 가지려면 다음 코드로 새 .ts 파일을 수행할 수 있습니다.

export class Product {
  name: String;
  price: Number;
  description: String;
}

그게 도움이 됐으면 좋겠어요!

감사해요.

특정 개체의 배열을 선언하고 개체의 변수 유형을 지정하려면 다음과 같은 개체에 대한 클래스를 만듭니다.

class Item(){
    name: string;
    description: string;
    etc: any

  constructor() {
    this.name;
    this.description;
    this.etc;
}}

그런 다음 배열을 항목 개체의 배열로 지정할 수 있습니다.

itemArray: Array<Item>;

언급URL : https://stackoverflow.com/questions/53964694/how-do-you-declare-an-array-of-objects-inside-typescript

반응형