# Die Typisierung Service[] ergibt für mich keinen Sinn



## RezaScript (26. Apr 2022)

Hi

So sieht mein Skript in Angular (TypeScript) aus:


```
export interface Service {
  service: string,
  description: string,
  hourly_rate: number,
  hours: number,
  price: number
}

const TABLE_VALUES: Service[] = [
  { service: 'Service 1', description: 'Lorem Ipsum...', hourly_rate: 60, hours: 5, price: 300 }
]
```

Also, den Typ von TABLE_VALUES definiere ich mit Service[]. Das funktioniert so aber ich verstehe nicht warum. Das Objekt befindet sich IN einer Array. Nach meiner Logik müsste es so aussehen: Array<Service>

Kann mich jemand bitte aufklären?


----------



## thecain (26. Apr 2022)

RezaScript hat gesagt.:


> Service[]


Ist der Typ für ein Array vom Typ Service. Beide schreibweisen sind OK. Service[] ist aber geläufiger


----------



## Apple’s Jünger (26. Apr 2022)

Das ist Angular mit Typescript. Da sind beide Schreibweisen möglich.








						How to define an array of strings in TypeScript interface?
					

I have an object like this:  {   "address": ["line1", "line2", "line3"] } How to define address in an interface? the number of elements in the array is not fixed.




					stackoverflow.com
				




Wenn man vor dem posten ein paar Minuten nachdenkt, dann muss man nicht ständig alle verwirren und dann seine postings editieren.


----------



## RezaScript (26. Apr 2022)

Ok danke. Gut zu wissen, dass es mit beiden möglich ist. Aber jetzt angenommen, mein Code sieht so aus:


```
export interface Service {
  service: string,
  description: string,
  hourly_rate: number,
  hours: number,
  price: number
}

const TABLE_VALUES = [
  { service: 'Service 1', description: 'Lorem Ipsum...', hourly_rate: 60, hours: 5, price: 300 }
  { "I am a string", 99, true }   
]
```

Mit Service[] kann ich ja dann nichts mehr anfangen. Wie würde die Typisierung dann aussehen? Etwa so? 
	
	
	
	





```
Array<Service, <string, number, boolean>>
```
Oder gibt es dafür auch eine Alternativlösung (abgesehen von any)?

@KonradN kein Problem. Du hast wahrscheinlich JavaScript mit Java verwechselt. Ich wollte als Highlighting auch TypeScript wählen, kann man in diesem Forum aber nicht. Deshalb habe ich einfach JS genommen


----------



## thecain (26. Apr 2022)

Warum solltest du das wollen? Ein Array hat einen fixen Typ, nicht einfach irgendwas.


----------



## httpdigest (26. Apr 2022)

Du kannst auch ein anonymes struct {} als Typ nutzen:

```
var variable : {
  service: string,
  description: string,
  hourly_rate: number,
  hours: number,
  price: number
}[] = {...};
```
Aber wie thecain schon sagte: Warum solltest du das wollen?


----------

