# Om generiska typ
__
author: krm
created: 2023-02-10
status: alpha
__

# 1. Vad är generisk typ("genric types")?
- Att en klass eller funktion har typparametrar.
- Att typerna används för genetisk programmering.
- Att typerna används i mycket allmäna förhållanden.
- Att parametrar kan ha olika namn.

## 2. Vilken typ kommer "X" att ha?

```js

function foo<T>(x:T) {
   return [x,x,x,x]
}

function boo<V,W>(y:V,z:W) {
   return [y,z]
}

let X = foo<number>(1);
let Y = boo<number,string>(1,"a");
let Z = foo<boolean>(true);
```

- number[]
- (number|string)[]
- boolean[]
- boolean
- string
- number

## 3. Vilken typ kommer "Y" att  ha?

```js

function foo<T>(x:T) {
   return [x,x,x,x]
}

function boo<V,W>(y:V,z:W) {
   return [y,z]
}

let X = foo<number>(1);
let Y = boo<number,string>(1,"a");
let Z = foo<boolean>(true);
```

- number[]
- (number|string)[]
- boolean[]
- boolean
- string
- number

## 4. Vilken typ kommer "Z" att ha?

```js

function foo<T>(x:T) {
   return [x,x,x,x]
}

function boo<V,W>(y:V,z:W) {
   return [y,z]
}

let X = foo<number>(1);
let Y = boo<number,string>(1,"a");
let Z = foo<boolean>(true);
```

- number[]
- (number|string)[]
- boolean[]
- boolean
- string
- number
