タイプ別のインプリメンテーションの追加
あなたが何を言っているのか知っていますが、可能です.
まずこれを見てください.
まず
そうでなければ繰り返します.
先ほどお話しした
これで完成したコード.
実はでたらめだ.
まずこれを見てください.
> [...[,,,], ...[,,]]['length']
5
まず
[,,, . . .] ([0, 0, 0 . . .])
を実現しますtype Arr<N extends number, V extends Array<number> = []> = // TODO
number
N
を受け取りました.Array<number>
配列も受け付けています.(デフォルト[]
)type Arr<N extends number, V extends Array<number> = []> =
V["length"] extends N
? V
: Arr<N, [...V, 0]>
N
が0(V ( [] )의 길이
)なら、そのまま[]
に戻りましょう.そうでなければ繰り返します.
Add
を実現しましょう.先ほどお話しした
[...[,,,], ...[,,]]['length']
を参考にして、簡単に実現できます.type Add<A extends number, B extends number> = // TODO
A
+24579142を作るために、上のコードのようにパラメータを受け入れます.[...Arr<A>, ...Arr<B>] extends { length: infer L }
? L extends number
? L
: never
: never;
B
は、[...Arr<A>, ...Arr<B>] extends { length: infer L }
であってもよい.これで完成したコード.
type Arr<N extends number, V extends Array<number> = []> =
V["length"] extends N
? V
: Arr<N, [...V, 0]>;
type Add<A extends number, B extends number> =
[...Arr<A>, ...Arr<B>] extends { length: infer L }
? L extends number
? L
: never
: never;
実はでたらめだ.
Reference
この問題について(タイプ別のインプリメンテーションの追加), 我々は、より多くの情報をここで見つけました https://velog.io/@rok/4テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol