使用toString方法作为Typescript中的映射键的函数

时间:2018-03-17 17:16:24

标签: typescript dictionary tostring

我有一个定义了toString方法的函数,但不能用作map键。什么是Typescript方式?使用toString方法工作正常,但在经典Javascript中它是多余的。

const
    type: string = 'SOME_TYPE',
    action = (payload: T) => ({type, payload});

action.toString = () => type;

const map = {    
    [action]: '...' // 'action' must be of 'number', 'symbol' or 'any' type error
}; 

1 个答案:

答案 0 :(得分:0)

...我假设您正在询问redux FSA s,但const TYPE = 'ACTION.TYPE'; interface Action<T> { type: typeof TYPE; payload: T; } const action = <T>(payload: T): Action<T> => ({ type: TYPE; payload; }); 方法在那里没有任何意义:/

我目前的做法是使用以下内容:

$result = Order::select('orders.*')
       ->join('users', 'orders.user_id', '=', 'user.users.id')
       ->where(function($q) {
              $q->where('orders.id', $search)
                ->orWhere('orders.reference_no', 'like', "%$search%")
                ->orWhere('users.name', 'like', "%$search%") ;
              })
        ->get();

有些hope在附近,a.k.a TS2.8,虽然可以节省一些样板。