# How to create lambda of type ((KeyboardEvent) -\> dynamic)?

**URL:** <https://discuss.kotlinlang.org/t/how-to-create-lambda-of-type-keyboardevent-dynamic/15821>\
**Category:** Web Development\
**Created:** [January 10, 2020, 12:55pm UTC](https://discuss.kotlinlang.org/t/how-to-create-lambda-of-type-keyboardevent-dynamic/15821 "2020-01-10T12:55:18Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![oleks.albul](https://avatars.discourse-cdn.com/v4/letter/o/f14d63/32.png) [@oleks.albul](https://discuss.kotlinlang.org/u/oleks.albul)\
**Post date:** [January 10, 2020, 12:55pm UTC](https://discuss.kotlinlang.org/t/how-to-create-lambda-of-type-keyboardevent-dynamic/15821/1 "2020-01-10T12:55:18Z")

</div>

I want to listen keyboard events. So I set lambda to `document.onkeypress` , which should be of type:

```auto
var onkeypress: ((KeyboardEvent) -> dynamic)?

```

Currently I’m getting this:  
 ![image](https://us1.discourse-cdn.com/flex019/uploads/kotlinlang/original/2X/9/99ce7e5cb1ec0b9fe1bf573bf45fa12507cf2dc1.png)

Lambda should return dynamic type, and I do return it, don’t understand what’s wrong with this construction.

---

<div class="post-metadata">

**Author:** ![lamba92](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/lamba92/32/5089_2.png) [@lamba92](https://discuss.kotlinlang.org/u/lamba92)\
**Post date:** [January 10, 2020, 1:06pm UTC](https://discuss.kotlinlang.org/t/how-to-create-lambda-of-type-keyboardevent-dynamic/15821/2 "2020-01-10T13:06:49Z")

</div>

First of all, please copy paste the code inside backtiks like [this](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code).

I believe what you need is the lambda itself to be a dynamic:

```kotlin
val myLambda: (KeyboardEvent) -> dynamic = { event: KeyboardEvent ->
    // stuff
}
document.onkeypress = myLambda.asDynamic()

```

---

<div class="post-metadata">

**Author:** ![oleks.albul](https://avatars.discourse-cdn.com/v4/letter/o/f14d63/32.png) [@oleks.albul](https://discuss.kotlinlang.org/u/oleks.albul)\
**Post date:** [January 10, 2020, 1:19pm UTC](https://discuss.kotlinlang.org/t/how-to-create-lambda-of-type-keyboardevent-dynamic/15821/3 "2020-01-10T13:19:38Z")

</div>

@lamba92 thanks, but your example doesn’t work either:

 ![image](https://us1.discourse-cdn.com/flex019/uploads/kotlinlang/original/2X/e/e74f4d009f314529a44069b735e3f3c13a72b16b.png)

---

<div class="post-metadata">

**Author:** ![lamba92](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/lamba92/32/5089_2.png) [@lamba92](https://discuss.kotlinlang.org/u/lamba92)\
**Post date:** [January 10, 2020, 1:36pm UTC](https://discuss.kotlinlang.org/t/how-to-create-lambda-of-type-keyboardevent-dynamic/15821/4 "2020-01-10T13:36:47Z")

</div>

Oh sorry, the `window.onload` lambda wants a dynamic as well, i did not noticed:

```kotlin
windows.onload = {
    // stuff
    return Unit.asDynamic()
}

```

---

<div class="post-metadata">

**Author:** ![oleks.albul](https://avatars.discourse-cdn.com/v4/letter/o/f14d63/32.png) [@oleks.albul](https://discuss.kotlinlang.org/u/oleks.albul)\
**Post date:** [January 10, 2020, 2:38pm UTC](https://discuss.kotlinlang.org/t/how-to-create-lambda-of-type-keyboardevent-dynamic/15821/5 "2020-01-10T14:38:22Z")

</div>

Yes thanks, it is even working without `.asDynamic()`  
Finall variant:

```auto
   window.onload = {
        document.onkeypress = { event: KeyboardEvent ->
            // Do work
            Unit
        }
        Unit
    }

```
