如何将 Typescript 不可变 JS 类型作为函数参数传递

How to pass Typescript Immutable JS type as function argument

如何将不可变类型的对象作为参数传递给函数

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' requires 1 type argument(s).

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')
} 

让你的函数通过不可变对象的类型参数。

function <T>(values: ImmutableObject<T>) {
//.. doo stuff
}