小编cod*_*elt的帖子

是的 oneOf TypeScript 枚举泛型函数

我无法找出yuponeOfTypeScript 枚举生成架构的函数的正确类型。


以下内容按预期工作,返回类型为yup.MixSchema<SomeEnum>

const schema1 = yup.mixed<SomeEnum>().oneOf(Object.values(SomeEnum)); // yup.MixSchema<SomeEnum>
Run Code Online (Sandbox Code Playgroud)

如果我尝试创建一个通用函数来返回模式,我会得到返回类型yup.MixSchema<typeof SomeEnum>. 注意typeof.

const oneOfEnum = <T>(enumObject: T) =>
  yup.mixed<T>().oneOf(Object.values(enumObject));

const schema2 = oneOfEnum(SomeEnum); // yup.MixSchema<typeof SomeEnum>
Run Code Online (Sandbox Code Playgroud)

https://codesandbox.io/s/yup-typescript-oneof-enum-vpvjn?file=/src/index.ts

enums typescript yup

6
推荐指数
1
解决办法
4747
查看次数

如何使用“p-waterfall”TypeScript 类型

我正在使用p-waterfall,我想知道如何使用提供的 TypeScript 类型。这是类型

declare namespace pWaterfall {
  type Task<ValueType, ReturnType> = (
    previousValue: ValueType
  ) => ReturnType | PromiseLike<ReturnType>;

  type InitialTask<ReturnType> = () => ReturnType | PromiseLike<ReturnType>;
}

declare const pWaterfall: {
    <ReturnType>(tasks: [pWaterfall.InitialTask<ReturnType>]): Promise<ReturnType>;
  <ValueType1, ReturnType>(
    tasks: [
      pWaterfall.InitialTask<ValueType1>,
      pWaterfall.Task<ValueType1, ReturnType>
    ]
  ): Promise<ReturnType>;
  <ValueType1, ValueType2, ReturnType>(
    tasks: [
      pWaterfall.InitialTask<ValueType1>,
      pWaterfall.Task<ValueType1, ValueType2>,
      pWaterfall.Task<ValueType2, ReturnType>
    ]
  ): Promise<ReturnType>;
  ...
Run Code Online (Sandbox Code Playgroud)

我把一个例子(下面的代码)放在一起,如果输入它真的可以帮助我理解如何让类型与p-waterfall一起工作。

import pWaterfall from "p-waterfall";

interface User {
  name: string;
}

const getItemsRequest …
Run Code Online (Sandbox Code Playgroud)

typescript typescript-generics typescript-typings

5
推荐指数
1
解决办法
90
查看次数