Skip to content

Latest commit

 

History

History
27 lines (20 loc) · 2.05 KB

File metadata and controls

27 lines (20 loc) · 2.05 KB

Typed Get hard #utils #template-literal

by Anthony Fu @antfu

Take the Challenge    日本語

The get function in lodash is a quite convenient helper for accessing nested values in JavaScript. However, when we come to TypeScript, using functions like this will make you lose the type information. With TS 4.1's upcoming Template Literal Types feature, properly typing get becomes possible. Can you implement it?

For example,

type Data = {
  foo: {
    bar: {
      value: 'foobar',
      count: 6,
    },
    included: true,
  },
  hello: 'world'
}
  
type A = Get<Data, 'hello'> // 'world'
type B = Get<Data, 'foo.bar.count'> // 6
type C = Get<Data, 'foo.bar'> // { value: 'foobar', count: 6 }

Accessing arrays is not required in this challenge.


Back Share your Solutions Check out Solutions