2017-10-10 15 views
0

私はこのようなオブジェクトにプロパティを追加しようとしています:フロープロパティを割り当てることができません:計算プロパティ/要素の割り当て

request(options:HttpRequestData): Promise<any> { 
    options.headers = options.headers || {}; 

    options.headers['Accept'] = 'application/json'; 
    options.headers['Content-Type'] = 'application/json'; // Error 

    return this._request(options); 
} 

しかし、それはエラーがあります。

options.headers['Content-Type'] = 'application/json'; 
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
assignment of computed property/element. Computed property/element cannot be assigned on possibly undefined value 

HttpRequestDataされますオブジェクトタイプ:

type HttpRequestData = { 
    url:string, 
    method:string, 
    headers?:Object, 
    body?:string, 
}; 

がoptions.headerにただ一つの値をAssiging(この場合は、「受け入れる」)は動作しますが、私は2またはをしようとすると、それが失敗しましたもっと。

Flowでの単一割り当てと複数割り当ての違い、およびそれらのプロパティをoptions.headersオブジェクトに割り当てる方法は何ですか?

アドバイスはありがたいです。

+0

流れの中にタイプObjectはありません。つまり、オブジェクト型の構文が正しくないということです。 –

+0

@ TarasYaremkivありがとう、ヘッダープロパティを次のように更新しました:ヘッダー?:{[string]:string}でも同じエラーが表示されます。 – modernator

答えて

0

私はこのように、この問題を解決:

request(options:HttpRequestData): Promise<any> { 
    options.headers = options.headers || {}; 

    const modifiedHeaders = options.headers; 
    modifiedHeaders['Accept'] = 'application/json'; 
    modifiedHeaders['Content-Type'] = 'application/json'; 

    options.headers = modifiedHeaders; 

    return this._request(options); 
} 

今、これ以上のエラーメッセージが表示されます。

関連する問題