相关疑难解决方法(0)

将元组转换为列表并返回

我目前正在使用平铺地图为pygame中的游戏制作地图编辑器.该级别由以下结构中的块构建(尽管更大):

level1 = (
         (1,1,1,1,1,1)
         (1,0,0,0,0,1)
         (1,0,0,0,0,1)
         (1,0,0,0,0,1)
         (1,0,0,0,0,1)
         (1,1,1,1,1,1))
Run Code Online (Sandbox Code Playgroud)

其中"1"是一个墙,而"0"是一个空的空间.

以下代码基本上是处理块类型更改的代码:

clicked = pygame.mouse.get_pressed()
if clicked[0] == 1:
    currLevel[((mousey+cameraY)/60)][((mousex+cameraX)/60)] = 1
Run Code Online (Sandbox Code Playgroud)

但由于级别存储在元组中,我无法更改不同块的值.如何以简单的方式更改关卡中的不同值?

python tuples list

171
推荐指数
8
解决办法
50万
查看次数

获取 Typescript“参数”元组的“切片”

考虑Parameters实用程序类型,其底层类型是元组:https ://www.typescriptlang.org/docs/handbook/utility-types.html#parameterstype

我有一个功能SomeFunction。要将函数的参数用作类型,我编写Parameters<SomeFunction>.

现在假设我想使用函数的参数作为除第一个参数之外的类型。

显然对于数组我会使用类似的东西...args.slice(1)。但我不知道用于 Typescript 定义的切片实用程序。Omit仅适用于对象。

这个问题的答案提供了一个RemoveFirstFromTuple实用程序。但这有点复杂。是否有一种内置方法可以在类型定义中提取元组的一部分?

javascript typescript

24
推荐指数
1
解决办法
5128
查看次数

从类型的 typescript 数组中排除类型

假设我有这些类型

    /** Types of a function's arguments */
export type ArgumentTypes<F extends Function> = F extends (...args: infer A) => any ? A : never;

export type ExcludeQueryParams<T> = { [P in keyof T]: T[P] extends PagingParameters ? never : T[P] }
Run Code Online (Sandbox Code Playgroud)

然后我有这段代码来提取函数的参数类型

function test(query: PagingParameters, as: number, f: string) {
    return 1;
}

type argTypes = ArgumentTypes<typeof test>
type result = ExcludeQueryParams<argTypes>
Run Code Online (Sandbox Code Playgroud)

上面,argTypes 将等于 [PagingParameters, number, string]

我想要做的是PagingParameters从数组中提取类型 so resultis [number, string],但是使用ExcludeQueryParams结果是[never, …

typescript

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

打字稿:如何实现这种类型的递归?

我原来的问题是这样的

我做了以下类型,但由于循环引用错误它不起作用,我不知道如何解决它:

type Increment<T extends number, Tuple extends any[] = [any]> = 
T extends 0 ? 1 :
T extends 1 ? 2 :
T extends TupleUnshift<any, Tuple> ? 
TupleUnshift<any, TupleUnshift<any, Tuple>>['length'] :
Increment<T, TupleUnshift<any, TupleUnshift<any, Tuple>>>
Run Code Online (Sandbox Code Playgroud)

最后它应该像这样工作:

type five = 5
type six = Increment<five> // 6
Run Code Online (Sandbox Code Playgroud)

PSTupleUnshift来自这里

typescript recursive-type typescript-typings

4
推荐指数
1
解决办法
919
查看次数