Skip to content

Latest commit

 

History

History
27 lines (22 loc) · 2.16 KB

File metadata and controls

27 lines (22 loc) · 2.16 KB

Typed Get 上級 #utils #template-literal

by Anthony Fu @antfu

挑戦する    English

lodash の get 関数は JavaScript でネストした値にアクセスする際にとても便利です。しかし、TypeScript でこのような関数を使うと型情報が失われてしまいます。 TypeScript4.1 の機能であるTemplate Literal Typesを使うと、getの適切な型付けが可能となります。 これを実装できるでしょうか?

例えば、

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 }

この課題では、配列へのアクセスは必要ありません。


戻る 解答を共有 解答を確認