如何将不可变类型的对象作为参数传递给函数
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个类型参数。
最佳答案
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')
}