我有一个定义了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
};
答案 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,虽然可以节省一些样板。