λ°μν
λ¬Έμ
λ°°μ΄(νν)μ λ°μ, κ° μμμ κ°μ key/valueλ‘ κ°λ μ€λΈμ νΈ νμ μ λ°ννλ νμ μ ꡬννμΈμ.
μμ
const tuple = ['tesla', 'model 3', 'model X', 'model Y'] as const
type result = TupleToObject<typeof tuple> // expected { tesla: 'tesla', 'model 3': 'model 3', 'model X': 'model X', 'model Y': 'model Y'}
νμ΄
κ°μ²΄μ ν€λ, κ°λ Tλ°°μ΄μ μμκΈ° λλ¬Έμ ν€κ° kvκ° T[number]μ μν΄μκ³ μ΄ κ²μ΄ ν€μΈ λμμ κ°μ΄λΌκ³ λͺ μν΄μ£Όλ©΄ ν΄κ²°λλ€.
μ΄λ Tλ string λλ number κ° ν¬ν¨λ λ°°μ΄μ΄λΌλ μ λ λͺ μν΄μ€λ€.
type TupleToObject<T extends readonly (string|number)[]> = {
[kv in T[number]] : kv;
}
μΆμ²
λ°μν
'π Typescript > type-challenges' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[TS] type-challenges: 18. Length of Tuple (0) | 2023.07.05 |
---|---|
[TS] type-challenges: 14. First of Array (0) | 2023.07.04 |
[TS] type-challenges : 7. Readonly (0) | 2023.06.28 |
[TS] type-challenges : 4. Pick (0) | 2023.06.28 |
[TS] type-challenges : 13. Hello World (0) | 2023.06.28 |