Typescript:这个箭头函数的内部参数
问题描述:
我熟悉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;
}
}
但有一个更优雅的解决方案,而自我/这个作业和一个箭头的功能?
答
在打字稿的新版本,你可以指定这个类型的伪参数设置为功能
let handlers: Handlers<IntentRequest> = {
"MyIntent": function (this: Handlers<IntentRequest> /* , realParam: string */) {
// this will have the type Handlers<IntentRequest>
}
}
你应该在这里检查'这parameters'部分:https://www.typescriptlang.org/docs /handbook/functions.html – Amid