Проблемы выбора Typescript - PullRequest
       6

Проблемы выбора Typescript

0 голосов
/ 15 февраля 2020

Мой упрощенный блок кода выглядит следующим образом:

interface A {
    val: string;
    // Other optional parameters
}

function usingObject(obj: A) {
    return obj.val
}

function usingVal(val: Pick<A, 'val'>) {
    return usingObject({ val })
}

Я получаю следующую ошибку

Type 'Pick<A, "val">' is not assignable to type 'string'.ts(2322)

Я хочу функцию, которая может принимать объект и другая функция, которая принимает каждый обязательный параметр в качестве аргумента

Ответы [ 2 ]

1 голос
/ 15 февраля 2020

Возможно, нам следует больше узнать о вашей usingObject реализации, но у меня сработало следующее:

function usingVal(val: Pick<A, 'val'>) {
  return usingObject(val)
}
1 голос
/ 15 февраля 2020

Тип результата Pick<A, 'val'> по существу такой же, как interface A. Другими словами, Pick<...> создает новый тип объекта .

Похоже, что вам подойдет следующее:

function usingVal(val: string) {
    return usingObject({ val })
}
...