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
'source' 카테고리의 다른 글
Spring Boot 테스트 - bootstrap.properties 재정의 (0) | 2023.07.03 |
---|---|
생성자가 @Autowired 작업을 어떻게 호출합니까? (0) | 2023.07.03 |
Spring AppContext 없이 @ConfigurationProperties를 수동으로 로드할 수 있습니까? (0) | 2023.07.03 |
ASP.Net MVC – 리소스를 찾을 수 없음 오류 (0) | 2023.06.28 |
이름으로 여러 열 이름 바꾸기 (0) | 2023.06.28 |