如何将不可变类型的对象作为参数传递给函数
interface ImmutableObject<T> {
get<K extends keyof T>(name: K): T[K],
set<S>(o: S): Immutable<T & S>,
"value1": string,
}
function(values: ImmutableObject) {
//.. doo stuff
}
我遇到错误
“ ImmutableObject”需要1个类型参数。
答案 0 :(得分:2)
ImmutableObject
是通用接口。对象的实际数据由T
参数确定。您需要为不可变对象指定T
参数
interface ImmutableObject<T> {
get<K extends keyof T>(name: K): T[K],
set<S>(o: S): Immutable<T & S>,
}
function foo(values: ImmutableObject<{ value1: string }>) {
values.get('value1')
}
答案 1 :(得分:0)
让您的函数传递不可变对象的类型参数。
/**
* Check the Class allocated to Student
*
*@return void
*/
public function class()
{
return $this->belongsToMany('App\Class', 'class_allocations');
}