Nuxt3 使用带有 useFetch 和转换选项的打字稿

Fen*_*nec 7 typescript nuxtjs3

我用来useFetch获取一个字符串数组string[],并可以transform选择将其从数组转换为对象。

我尝试了下面的代码:

type ReceivedData = [string, string, string];

interface TransformedData {
    prop1: string,
    prop2: string,
    prop3: string
}

const { data, error } = await useFetch<ReceivedData>(
    `./jsonPath.json`,
    {
      transform: ([prop1, prop2, prop3]: ReceivedData): TransformedData  => ({
         prop1, prop2, prop3
      })
    }
);
Run Code Online (Sandbox Code Playgroud)

我收到这个错误

Type '([prop1, prop2, prop3]: ReceivedData) => TransformedData' is not assignable to type '(res: ReceivedData) => ReceivedData'.

我很确定我在这里弄乱了一些东西,但是 Typescript 期望转换方法返回它接收到的相同数据类型。

som*_*ser 2

目前,您可以像这样使用它:

  type ReceivedData = [string, string, string]

  interface TransformedData {
    prop1: string
    prop2: string
    prop3: string
  }

  const transform = ([prop1, prop2, prop3]: ReceivedData): TransformedData => ({
    prop1,
    prop2,
    prop3,
  })

  const { data } = await useFetch<
    ReceivedData,
    Error,
    string,
    ReceivedData,
    typeof transform
  >(`./jsonPath.json`, {
    transform,
  })
Run Code Online (Sandbox Code Playgroud)

老实说,我希望未来能够改进这一点。