TypeScript 映射类型:获取数组的元素类型

Mar*_*uch 5 typescript mapped-types

假设有一个容器类型,其数组属性为未知/生成类型T1T2等等(短T*):

\n
interface MultiContainer\n{\n    Item1: T1[];\n    Item2: T2[];\n    ...\n}\n
Run Code Online (Sandbox Code Playgroud)\n

是否可以使用映射类型派生以下类型:

\n
interface SingleContainer\n{\n    Item1: T1;\n    Item2: T2;\n    ...\n}\n
Run Code Online (Sandbox Code Playgroud)\n

我正在寻找一些表达方式,例如:

\n
type SingleContainer =\n    { [ P in keyof MultiContainer ]: MultiContainer[P] }\n                                            \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80 returns T*[] instead of T*  \n
Run Code Online (Sandbox Code Playgroud)\n

MultiContainer[P]返回类型T*[] but I need an expression that returns T*

\n

提前致谢!

\n

Fra*_*ica 4

我相信这可以满足您的需要:

type SingleContainer = {[P in keyof MultiContainer]: MultiContainer[P][0]}
Run Code Online (Sandbox Code Playgroud)