私はこの Flux Storeクラスを持っています:
'use strict';
import flux = require('app/tools/flux');
import types = require('app/tools/types');
import Actions = require('app/actions/actions');
class Store
{
bindListeners(config : any) : void {;};
books : Array<types.IBook>;
selectedBookName : string;
...
}
export = flux.createStore<Store>(Store, 'Store');
それはこのビューで使用されています:
"use strict";
import React = require('react');
import Store = require('app/stores/store'); // <-- here we import the Store
import _ = require('lodash');
import BookHelper = require('app/tools/bookHelper');
import Msg = require('app/tools/messages');
interface props {}
interface state {}
class NoteContainer extends React.Component<props, state>
{
state: typeof Store; // <-- this is Altjs<Store>, not Store :(
render()
{
if (!this.state.selectedBookName) // <-- here's an error
return;
...
これにより、コンパイルエラーが発生します。
error TS2339: Property 'selectedBookName' does not exist on type 'AltStore<Store>'.
ビューの状態をクラスではなく実際のStoreクラスに設定するにはどうすればよいAltStore<Store>
ですか? つまり、次のように、ジェネリック パラメーターの型を取得するにはどうすればよいですか。
state: typeof Store<THIS THING>