2017-08-24 182 views
0

我熟悉this在打字稿中的箭头函数的行为(或者至少我是这么认为的)。 但是今天我碰到一个this迷迷糊糊的箭头函数的参数列表中使用(这是从Alexa的-SDK的类型定义):Typescript:这个箭头函数的内部参数

export interface Handlers<T> { 
    [intent: string]: (this: Handler<T>) => void; 
} 

什么,这实际上意味着,我将如何实现这个?

let handlers: Handlers<IntentRequest> = { 
    "MyIntent" = ??? 
} 

我知道我可以这样做:

let handlers: Handlers<IntentRequest> = { 
     "MyIntent" = function() { 
      let self: Alexa.Handler<IntentRequest> = this; 
     } 
} 

但有一个更优雅的解决方案,而自我/这个作业和一个箭头的功能?

+2

你应该在这里检查'这parameters'部分:https://www.typescriptlang.org/docs /handbook/functions.html – Amid

回答

1

在打字稿的新版本,你可以指定这个类型的伪参数设置为功能

let handlers: Handlers<IntentRequest> = { 
    "MyIntent": function (this: Handlers<IntentRequest> /* , realParam: string */) { 
     // this will have the type Handlers<IntentRequest> 
    } 
} 
相关问题