GithubHelp home page GithubHelp logo

azuline / type-challenges Goto Github PK

View Code? Open in Web Editor NEW

This project forked from type-challenges/type-challenges

1.0 0.0 0.0 1.77 MB

my solns

Home Page: https://tsch.js.org/

License: MIT License

Shell 0.08% TypeScript 96.75% CSS 0.95% HTML 1.72% Python 0.50%

type-challenges's Introduction

Collection of TypeScript type challenges


English | 简体中文 | 日本語 | 한국어

Intro

by the power of TypeScript's well-known Turing Completed type system

High-quality types can help improve projects' maintainability while avoiding potential bugs.

There are a bunch of awesome type utility libraries may boost your works on types, like ts-toolbelt, utility-types, SimplyTyped, etc., which you can already use.

This project is aimed at helping you better understand how the type system works, writing your own utilities, or just having fun with the challenges. We are also trying to form a community where you can ask questions and get answers you have faced in the real world - they may become part of the challenges!

Challenges

Click the following badges to see details of the challenges.

1

  • 13・Hello World

13

  • 4・Pick
  • 7・Readonly
  • 11・Tuple to Object
  • 14・First of Array
  • 18・Length of Tuple
  • 43・Exclude
  • 189・Awaited
  • 268・If
  • 533・Concat
  • 898・Includes
  • 3057・Push
  • 3060・Unshift
  • 3312・Parameters

68

  • 2・Get Return Type
  • 3・Omit
  • 8・Readonly 2
  • 9・Deep Readonly
  • 10・Tuple to Union
  • 12・Chainable Options
  • 15・Last of Array
  • 16・Pop
  • 20・Promise.all
  • 62・Type Lookup
  • 106・Trim Left
  • 108・Trim
  • 110・Capitalize
  • 116・Replace
  • 119・ReplaceAll
  • 191・Append Argument
  • 296・Permutation
  • 298・Length of String
  • 459・Flatten
  • 527・Append to object
  • 529・Absolute
  • 531・String to Union
  • 599・Merge
  • 612・KebabCase
  • 645・Diff
  • 949・AnyOf
  • 1042・IsNever
  • 1097・IsUnion
  • 1130・ReplaceKeys
  • 1367・Remove Index Signature
  • 1978・Percentage Parser
  • 2070・Drop Char
  • 2257・MinusOne
  • 2595・PickByType
  • 2688・StartsWith
  • 2693・EndsWith
  • 2757・PartialByKeys
  • 2759・RequiredByKeys
  • 2793・Mutable
  • 2852・OmitByType
  • 2946・ObjectEntries
  • 3062・Shift
  • 3188・Tuple to Nested Object
  • 3192・Reverse
  • 3196・Flip Arguments
  • 3243・FlattenDepth
  • 3326・BEM style string
  • 3376・InorderTraversal
  • 4179・Flip
  • 4182・Fibonacci Sequence
  • 4260・AllCombinations
  • 4425・Greater Than
  • 4471・Zip
  • 4484・IsTuple
  • 4499・Chunk
  • 4518・Fill
  • 4803・Trim Right
  • 5117・Without
  • 5140・Trunc
  • 5153・IndexOf
  • 5310・Join
  • 5317・LastIndexOf
  • 5360・Unique
  • 5821・MapTypes
  • 7544・Construct Tuple
  • 8640・Number Range
  • 8767・Combination
  • 8987・Subsequence

37

  • 6・Simple Vue
  • 17・Currying 1
  • 55・Union to Intersection
  • 57・Get Required
  • 59・Get Optional
  • 89・Required Keys
  • 90・Optional Keys
  • 112・Capitalize Words
  • 114・CamelCase
  • 147・C-printf Parser
  • 213・Vue Basic Props
  • 223・IsAny
  • 270・Typed Get
  • 300・String to Number
  • 399・Tuple Filter
  • 472・Tuple to Enum Object
  • 545・printf
  • 553・Deep object to unique
  • 651・Length of String 2
  • 730・Union to Tuple
  • 847・String Join
  • 956・DeepPick
  • 1290・Pinia
  • 1383・Camelize
  • 2059・Drop String
  • 2822・Split
  • 2828・ClassPublicKeys
  • 2857・IsRequiredKey
  • 2949・ObjectFromEntries
  • 4037・IsPalindrome
  • 5181・Mutable Keys
  • 5423・Intersection
  • 6141・Binary to Decimal
  • 7258・Object Key Paths
  • 8804・Two Sum
  • 9155・ValidDate
  • 9160・Assign

14

  • 5・Get Readonly Keys
  • 151・Query String Parser
  • 216・Slice
  • 274・Integers Comparator
  • 462・Currying 2
  • 476・Sum
  • 517・Multiply
  • 697・Tag
  • 734・Inclusive Range
  • 741・Sort
  • 869・DistributeUnions
  • 925・Assert Array Index
  • 6228・JSON Parser
  • 7561・Subtract

Upcoming challenges

🔥 Start the challenge in TypeScript Playground

⚡️ Start the challenge in VS Code

Recommended Readings

Official

Articles

Talks

Projects / Solutions

Books

TODO

How to Contribute

There are several ways you can contribute to this project

  • Share your answers / solutions
  • Propose new challenges
  • Add more test cases to the existing challenges
  • Provide learning resources or ideas of how to solve challenges
  • Share the problems you have faced in real-world projects, regardless you having the solution or not - the community would help you as well
  • Help with others by discussion in issues
  • Contribute the infra of this project TODOs.md

Just open an issue and choose the corresponding template. Thanks!

Thanks

This project was born from solving real-world types problem with @hardfist and @MeCKodo. And great thanks to @sinoon who contributed a lot while giving early feedback on this project.

Inspired by

Contributors

Contributors

License

MIT

type-challenges's People

Contributors

antfu avatar azuline avatar bre30kra69cs avatar captainofphb avatar ch3cknull avatar dogdriip avatar dqn avatar g-plane avatar github-actions[bot] avatar h-a-n-a avatar hiroyaiizuka avatar homyeeking avatar hubvue avatar jiangshanmeta avatar jiatln avatar kawamataryo avatar kynefuk avatar likui628 avatar mistlog avatar pashutk avatar qianxi0410 avatar rthong avatar sinoon avatar suica avatar talljack avatar tenkirin avatar tisou1 avatar uid11 avatar xianshenglu avatar yash-singh1 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.