Создание интерфейса с массивом переменной длины, содержащий объекты в TypeScript/Angular4
Я пытаюсь создать переменную в базе данных в памяти, которая содержит интерфейс TypeScript, который описывает набор данных JSON. Этот набор данных должен содержать несколько массивов, которые, в свою очередь, содержат несколько объектов с фиксированной длиной и согласованными атрибутами.
Я пишу это в Angular4 и TypeScript. Массивы должны иметь переменную длину с минимумом 1 члена
Я написал этот псевдо-код, чтобы показать вам, что я имею в виду:
export class MyHomeBrewery {
taps: Array<any> = [{
id: number;
name: string;
type: string;
quantity: number;
}][...];
barrels: Array<any> {
id: number;
name: string;
width: number;
height: number;
quantity: number;
}][...];
Я просмотрел документацию по TypeScript и Angular и выполнил несколько поисков, и я не могу найти правильный синтаксис для этого. Кто-нибудь знает?
Ответы
Ответ 1
Вы должны использовать их как интерфейсы, как показано ниже
export interface MyHomeBrewery {
taps: Array<Taps>;
barrels: Array<Barrels>;
}
export interface Taps {
id: number;
name: string;
type: string;
quantity: number;
}
export interface Barrels {
id : number;
name: string;
width: number;
height: number;
quantity: number;
}
Ответ 2
Тестирование этого интерфейса с машинописью детской площадкой: https://www.typescriptlang.org/play/#code/KYDwDg9gTgLgBASwHY2FAZgQwMbDgWQE8AJCAW2ACEpgB3NQuAbwFgAoOTuJTCgLjgBnGFGQBzADTsucGJjCCBAQShRMhADwAVeYIB8AbhnSuAI0yrgAG0VwVazZQs0bh9gF927UJFiIUaFi4cDoKzF4cXAgAJgJIAK5kpmgGJpw8-EIi4qmRnDCEYMACwqJIYrkyAI7xmCgIBXGJyVC5nmze4NDwyKgYOHhOljbheYjRcE1JKWncvMVZZRWztDEwABZTLZVc68AIYuswWzNjNXUwDYQnrR4RAG4WcBCmAFYCRKQU1HQMcAC8oxkGQWACJUMJQVIxnIFAIANqsMYyGICACM0JkwPmAlBpgOoShsxkBSKuNoEAgRORXHO9UacAALIzZu4ALqYszOay2RHEqKxOAAJk5WLmmQA5KVxBLRVjVtENgIAOxymR7A5HAQAZm1atptXp1zgAFYTay2R4gA