Skip to content

Instantly share code, notes, and snippets.

@Andarist
Created October 27, 2023 09:22
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save Andarist/432208634f319a74c0e91cdc3288fb45 to your computer and use it in GitHub Desktop.
Save Andarist/432208634f319a74c0e91cdc3288fb45 to your computer and use it in GitHub Desktop.
TS Congress - Reverse Mapped Types TS playgrounds
// identity mapped type
https://www.typescriptlang.org/play?#code/PTAEEsDsAcFcBcBQ8Ce0CmoDyAjAVqALygDeioFoAZgPY0BcoAzvAE5QDmANOZTgIatGkWAFsc6VogC+iRCGqxIAY3jgakZGkwBJACbpIa1AB4AKgD4ipXhQDaAaQiRQAa3QoaVUGYC6jM0dfGTkFZX4AGwitDFAAZX5RTGJ9Q2MUE1w8CyA
// promisify mapped type
https://www.typescriptlang.org/play?#code/C4TwDgpgBA8gRgKygXigbygMwPbYFxQDOwATgJYB2A5gDRRwCGJBFArgLZwQlQC+AUP1CQoABRLZ2ZQmUwgAPABUAfCnT8omqAG0A0lEpQA1hBDZMURQF0CACgCUKVeMnSISvVeX8BQ8NBcpGUwyCAATNUDpWQV4BG9+MIgAYwAbJmhk7ApiKBIwZIIo4NCwwSyc4CxWYFYSaFR85IA6RhIHQUwauohm4AALCApbWwA3BlTHZFU0DS1x1J97IA
// SatisfyName, get access to ur own key in the callback
https://www.typescriptlang.org/play?#code/PTAEDMFcDsGMBcCWB7aAoeBPADgU1AMoCGSAzuJgHJEC2uAPACoB8oAvKAN5qigDaAaVCJooANa5MycKEYBdAFygAFNFq4lAgJTtWAN2SIAJgG40AXzNojuWABsiAJ3xQ4SVKFIlE5TAHkAIwArW3hqOiZmZWRgpWIyCnCGFi0lA2MrLwT-YNCk5U5QEFBkSHhsMp5QIiVVdR02Vm4q3jU6M15zABoqgNq23AamltARgY7QbostEyA
// provideValue, just pairs of data and callbacks that get *their* data as an argument
https://www.typescriptlang.org/play?#code/CYUwxgNghgTiAEAzArgOzAFwJYHtXwAcYcA3LUANSgmRAB4AVAPgAocAjAKwC54BvAFDx4AbQDS8LPgDWIAJ45E8BgF1eg4cJLVeDcSoDcQzWHa8WqKAFsQu-QEp4AXibwSOckeEBfI9-u87p4CAkSk5CBUNCAsGvBQ6sZaOvAALABMADRJ8Kbm2tGOLvwhmpoFtF6a3tk+tfBmJWUFvABEUADuIADOODYAhK31wnnwLBUgRa6COcnRVXXGNQL+BkA
// extend, listing requirement properties that the callback function needs
https://www.typescriptlang.org/play?#code/CYUwxgNghgTiAEkoGdnwKrJDeBveA9AfMFAC5QBGKCIAdmQJZkCeAUPPAA4CulEjMPDpQAtiABc8ZGRiM6AcwDcHbnwFDoMqTLmKVnXv0HwoCycJ6jK2FQF82bUEjjwAZjzpgmAezrwQAA8yemAAHgAVAD4ACnleMilcVQBtAGl4eXgAaxAWHzd4CIBdJNVOOhAQYGQpCPTig05EH1EEixjAqQAFQWywzGwAGhy8gqKG+AAyUfzCwZgogEp4AF4o0zoWJrt7JakANx9GYBU2MD8ZeEC1gODQmOTONzFGCBYAOTELJ+bK6tqeHgWkS8FkPAQdiG5RabR4ISkMR4WBgK3W8GR2AAdCDoZwoaoPBAIF9xGVmsIqjVyRThN8pOCQHjaSCGTAIcz8ZzYe1EZjUWsNgADAAkuH5WJE4js8DFEpBdiFzIJdiWKiAA
// bindAll, mapping through a tuple
https://www.typescriptlang.org/play?#code/C4TwDgpgBAqgdgazgewO5wGIFc4GNgCWycUAvFABQB0NAhgE4DmAzgFxS1wgDaAugJRkAfBy4BuAFATQkKAHEIwAKIA3CHGAAeCVCgAVPQ0aKANDv17w0CAA9g6gCbMozYPQJxGZkeQAGxABIAbwMrAF9fKFt7OCcoBAgQZAAzCyNFcwB+KAAFBloAW0UIemZNJTt6WnxNA3Tgbn84YNDICN4TWEQUdGw8QmIhIW4ABl5zdlV1YElpKygAIQ8HDxZawyZFKLtHZwAJPQBZABklABsIIo1OvW2YuPoIWgdiM5AXN1W+Hygg824ANJQDzxRIpfS8dh-XS6GQQdh6QG8SQwqBnAiudQldgUCAqdgKZRqDTreo3JFCQSkEQqZAEBwoqBhSTMqRw3LIZjMAgAIwuUw0lkgmgBPyB0V2UCawQ8yRK+nCkWyQug7DgeJKswcEFwZwY0GSOHwRBIPOWAEEzmdtLpbhLYvsjqcLldgGZbVZnPaHk8XnA3hyubz+cTgCrNAkkqk9MMOhIhBRgPUEZ10Zj1aV2NwaFQlrFVmU9DdPUIBOxafTZmbYpazhQgmEOI6TgBJOBgLDKF3TTrcczQmFw9gAIj5WHow-dMLTMWxlA1GipIgHqIXM3MujCU63-Y3UCHUGHuoIuAQk73M6x9Bxa6Xvz3ujXjM327MAkkQA
// flat state machine
https://www.typescriptlang.org/play?#code/CYUwxgNghgTiAEAzArgOzAFwJYHtXzDigxAFkowALLVEAHgBUA+ACjD0SwHMAueAbwBQ8eDSzYoEPgGsQATxyJ4DANzD4AZwzEQGvkJEiA2gGlR+WQqUMAuvvWH4GOQAcQAfj5aYNLmscieJ7wAErgODDAdN6+ADTwlorKTP6GAL6pGYJpAJR8AG44WMBqgoQgOuRUNCAsBubiWJJ8AEScMFotsepaOnoCDkhYHRj2AfB4Y+PwAHIAogAaDK0a4ajAXYMiad2OO4Or7OtTjpMD07OLy-AtGNSRm+P7e7uGd8PAJ2+uIK2cqJJHulXvtciogA
// hierarchical state machine with recursive mapped type
https://www.typescriptlang.org/play?#code/C4TwDgpgBAysCGwIB4AqA+KBeKBvAUFFAJYB2xwx8ANgPwBcUA1hCAPYBmUqA3IVAGcESAQzz8iAbQDSJUs1aduAXUZxEKVDOWYAZOKKGobUmIBKEAMZsATgBNkQm2QDmAGgXsuGPkYC+vlAB+MH4dlbU8DbQHACupJaUJlCW0RoAsvCWABZkmugAFNakHMQuasL5AJSMAG5sxHZ8+KkQGVm5pBAFBERkFFTUjABEpTZCw278QhoCjL2GY0LzEoYmK0ZGAGIA8jsjAlYmdpOrRH5T-peGh8V2G5v9lDQjALYgAMK51CfXRusGTZEXb7KCjYjjYCnIEXM6CSpzQFA95fYg-B5AogAhaYwwAIQAgmY3iAdsBshAbKiftDcUE-ptYbj3mSKVTvvckZjsXCgYTiWCURzabimZixVdVmLYX4qjwgA
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment