2017-08-24 29 views
0

私は012の字型の矢印の中にthisの動作をよく知っています(少なくとも私はそう考えていました)。これは実際にTypescript:矢印関数内のこの内部パラメータ

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

何を意味し、どのように私はこれを実装します: は、しかし、今日、私は(これはアレクサ-SDKの型定義からである)矢印関数の引数リストで使用されてthisに出くわし?

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

私はのような何かを行うことができますことを知っている:

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

が、矢印機能付きセルフ/この割り当てずに、よりエレガントな解決策はありますか?あなたが関数に擬似PARAMTERとしてのタイプを指定することができtypescriptですの新しいバージョンでは

+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> 
    } 
} 
関連する問題