Thomas Preißler

41 posts

Thomas Preißler banner
Thomas Preißler

Thomas Preißler

@TheThomasPr

software developer, addicted to KISS

Freiburg, Germany เข้าร่วม Nisan 2012
320 กำลังติดตาม36 ผู้ติดตาม
Thomas Preißler
Thomas Preißler@TheThomasPr·
@mattpocockuk Thanks for the update! It's amazing how you solve such difficult tasks in no time.
English
0
0
1
17
Matt Pocock
Matt Pocock@mattpocockuk·
@TheThomasPr The canonical best way to do it is by filtering out the keys that aren't assignable to PropertyKey, but I wanted to keep the example relatively simple: #code/FAFwngDgpgBA0lMBnA6gSxACwAoCcD20u4CYAagIYA2ArlADwAqAfDALwwDWi+AZjAG9gMETADacGGgB2XHv0YwKSGIwkBdGFAAeIKNIAmKvISjEwpGAH54MAFwxpUAG5n1DgQF9g34AGN8aSQQGABzAhoIACEwdhh6YVFGAHkAIwArLV19IxgAJSgA3AN6YNwZUIAaGBppTml8AHdpZkrEkUZLHT1DFVJUDBwCIhJESloGFIzW9tVxrJ7cqfSxTsQYADI5MD5VNPTNLZMRi0RgZgAKWYpcXAdlsXU20W370mAASnZWIVmAoJCuCgSBoVBCHC8ShUBSKJUY42qD3UzGA11uADpePhcABRCh+TAXC4YKAAWy+bB+sxe-2CMCBILBlg4JNJYm4sWU212y00XPh1AA3KiXi80PwLgzQSAxFKmYh1F8hKKVfTgdLZer5WB1OiIDQkITWR9haqYJ4tFQkLBlWbRHKZQ7SJoOGJWepTarvC9PCbZkCQDRcLIHcLPMLUbSQjdcBRYq7ZgJHBRSVAHAAiABS+Ew0nT1QooTTMAATAAGap+G4eGABKjYhwAclSE0b5vNz1ESekKeLWYoTnzSiLDnLlerglr+HrdxgjfCUH0bYtnk7Im7vYzmfxnCHheLAGYK7WJ0m6w25y26MvzcB1JHAnSHXFwvhIjELjG49V01XcOm-VpacoHRetQklLUQD9VEAHoYJgZIaBAfUQgMIMKnpWoQDQVNgDgwQ8PgkR0zEfAMkKEJ9go9R0wcMRCJeJN0x7VNaJgLMczzH99zYsd2L-NimPPf8MyvKB03bVcGK7diWPErcB3E7ii1449fxuQT+OnbE2PTBd9Aklc2nwmTmN7XTtz8XdlPkmAjx-ASa1-bSRPYsTDNvEz7zgi0gA" target="_blank" rel="nofollow noopener">typescriptlang.org/play?#code/FAF…
English
1
0
0
35
Matt Pocock
Matt Pocock@mattpocockuk·
Why any's happen, how to stop them, and why unknown isn't necessarily a better solution 🧵
Matt Pocock tweet media
English
13
53
584
157.1K
Thomas Preißler
Thomas Preißler@TheThomasPr·
@mattpocockuk You're right. But without restricting it, grouping by a nested object would give "[object Object]" as the single key of the result. #code/FAYw9gdgzgLgBAcwE5gK4AcBCBPOBeOAHmDlLgBUB5AIwCs4BTADxgYgBMo4AlB8JdoVhIAlhAQAaOKggBrCGADuEAHwSSZcgGkGuZqw5dZusADMKNWsBUAKDaQCGSJAC4LdANoBddWTjHsN21dYABKfBU4AG9gezhwaHgkBihUABt4AiiAXzgHLl5+QSpPYOwvOAAyOAAFFHQGJBhsHWwpEtpvFVi-JyQAOlMwJABRBxAACxsbEVYAW3C8SJi-PwTYOGTUjNb8OFmGOY8Aivz3TrKK6rqwBqaW3QBuHtXSEXMbLfSYDy+d3S84RWr1Wfx+YNaXn66FQUCmBwWzxBcFyDDSUAY0TiyLBvxS30hew8CK8SJB2Ti2VCZNIyRgqCQEE2+Iyz2yz1i63gfQcuAIHjiUTgEAccwYbgARAApMATCASqQOBDiuAAJgADFIQE43ELwGlhm4AOTUNKoBhGlEo3xkIUisWSqUOCAMBV5ZVuDVanXReJgA2uOBG5AMNiW3LZG2kO2ilXS8ayN1KlUAZk18R9ev9hqDpvN4ZRwC8nMgGzBe2QaCw2BsPLacAl2qQEupoFL-oY-QNCE+LJgrdiAHpB3BKKgYDD4OwGWIEJsZDARGLgMOsavSBKPGA6Hx4JZd14JW4Bevow37a7HbL5VIJcmj2r042nA+hY3s83JXnXVbIyuR7a56xg+8Yum6d7Kg+XoNk2r4wR+IEhmwEq-uop6+hKF4gU6ICJre95uGmt6wbq8EBiB34oRG-6kMWw65EAA" target="_blank" rel="nofollow noopener">typescriptlang.org/play?#code/FAY…
English
1
0
0
26
Matt Pocock
Matt Pocock@mattpocockuk·
@TheThomasPr Yes, but then it restricts the kinds of types you can pass in to groupBy.
English
2
0
0
242
Thomas Preißler
Thomas Preißler@TheThomasPr·
@mattpocockuk To simplify the type castings, you can define TObj as Record<string, PropertyKey> instead of using <string, unknown>.
Thomas Preißler tweet media
English
1
0
1
201
Matt Pocock
Matt Pocock@mattpocockuk·
The way out of this catch-22 is generics. This code below is extremely complex, but it perfectly describes the behaviour of the function. Consumers of the function don't need to worry about any's or unknowns - it behaves exactly as they expect to.
Matt Pocock tweet mediaMatt Pocock tweet media
English
5
5
72
62.3K
Thomas Preißler
Thomas Preißler@TheThomasPr·
Software development is like art: only the work of skilled masters will last for years.
English
1
0
2
0
Thomas Preißler
Thomas Preißler@TheThomasPr·
In the past I used the HTTP header "Content-Disposition" to instruct the browser to download a file. I ended up doing this because I knew of no other way for this. Until today. I discovered, that the anchor-element has a "download" attribute. 🤯 ➡️ thomas.preissler.me/blog/2022/05/0…
Thomas Preißler tweet media
English
0
0
1
0
Thomas Preißler
Thomas Preißler@TheThomasPr·
@heinzkabutz In fact, the code is really bad for readers. Just swapping variables out of the for-loop would help a lot for readability.
English
1
0
0
0
Thomas Preißler
Thomas Preißler@TheThomasPr·
@satya164 @mpocock1 @ts Oh, this is indeed very useful. I did not know that. :) I updated the playground with ts-expect-error as reference: #code/C4TwDgpgBAkgdsKBeKBGKAfKAmTUDMeALHgKx4BseA7HgBx4CcAUM6JFAAoQBOAxhATIoAAwAkAb3jAAvpOl4ADDICkIvOKlCsytRtSLFa1sz4B7OAGdEAczNmAJgC4uvAUJQBybERWfWAPQBAALAlgC0EAAekHzAkTw8ZjymFtZQcGbA8ABKAIZwNhAu3PyCiF7Yhn5QUEFQlgAWZgCuADYOUABG0AVQvEk83RB8eS2W0FWKUACWlhlZs3BQwI3QPAVFgSFhkTEj8QPJqVaImcCl7sAlbuXCnmttbWaedQH9iclQAESPz9+zebnKB5KCQMoIPJbZhBUIRaKxQ6fFLmU4LAAyEDyDhmhQAWrwzJYbhCKlBPIpGDV6kcht9KSoAY08vNQW0sTjClAAF6E5hAA" target="_blank" rel="nofollow noopener">typescriptlang.org/play?#code/C4T… I will also take a closer look at the expect-type lib. Seems very promising.
English
0
0
0
0
Thomas Preißler
Thomas Preißler@TheThomasPr·
Hey @mpocock1! Is there any way to write unit tests for TypeScript definitions? Let's take the example you shared: #code/C4TwDgpgBAkgdsKBeKBGKAfKAmTUDMeALHgKx4BseA7HgBx4CcAUM6JFAAoQBOAxhATIoAAwAkAb3jAAvpOl4ADDICkIvOKlCsytRtSLFa1nwD2cAM6IA5qdMATAFxdeAoSgDk2Iio-MzlohwpsDwAEoAhnDWEM7c-IKIntiGvlBQAPQZUBYAFqYArgA29lAARtBRULw8pjzlEHwRBRbQKYpQAJYWUMGInXBQwLnQPFEx-uZWvSHxbsBxronCHiNFRaYemdk1dVAARGsb+109fVARUJAJCBETQA" target="_blank" rel="nofollow noopener">typescriptlang.org/play?#code/C4T… I would like to have a test so that if someone refactors the "type Percent" and accidentally allows 09%, they are notified of this error.
English
1
0
2
0
Thomas Preißler
Thomas Preißler@TheThomasPr·
It happens to the best. #AWS #xray
Thomas Preißler tweet media
Thomas Preißler@TheThomasPr

Fix translation issues at compile time with #TypeScript ➡️ TypeScript Playground: #code/PTAEFUGcEsDsHNQBUCeAHAppAxgJ2mgC6iED2oAbgIYA20AJlYRiblbJDU9KR6E6GykAtmmg0WhaMIwAoEKAAWhQmkgAuEIUUiqkAHRpcGaJE4Zc+mcABGNUvGAAmAAxOnwFwGZgXl8ABXGAQAWkJ0LDwCQjDSEOo6RmYwtg4uKV5IEKYQoVFxDDDpOVkhDmJCVM5uXlAAXlAAb1lQJQwaewB1UlwaenVQAHIACVp7UE72wgBCQYAaFtB6aFoHAebW1qlCCQHBgCEsQgATqXgAhHnF1vpI-CIeWD2AWQA37GUMWFAAZWgWABmPUIAKoimMsAA-INFgBfBatKjYDIcdbXUA2AIqTJozabSABGzCaCEPaHSAnM5fK541rYdjYdp7ACCNhsxg+1PRsLhsh5snCmFAABEMBg0ABpDAoSAAeQBAB4kHNQFKUKAMAAPZiweiQUAAa2lpAByHqhuNpqQAD56ui1RrtV89aAKfgEOjIcgANpqgC6jp1LrdcEQXodAwABgASRpq2H6WOi8VquWKpC+6V+62wyPogawDAUCyyAURZBVdKPB0NZOS6VphWCjAm1jsaoo60AblLzd+lVDstgNBQAClILUGiGEKAAD5NUDeoykTC4cIDafwP0DH4DhBDkfj2qwnulTIVStMFgNAAUlXbVd4aoGSEvKLVAEoN3vEHVbRtNjKClQGMAkaGIBp7zSGpYDVdE8X0SA0DoQgbwAIn0NCP3gzZ9GMegAkZG8cNpUAbwAKwnWAVWXVdwgAOSoGQP3qW1m1bSjJzqBpBlIGxyIwZFBlAL1ONgJdcBXCwGKYjAAwGC5bgBOAMHoBFSNpKCO0efh9V3d14APMcqLnUBFIwZTC3oD8ezxYxCACXBvnY01QICcD6m4oZN2Er03I8gYtMfWDpR7E9ezfDAb0GZZVngfRtgkQYbIFSLoti+x4sUDAqFuXBkp7IA" target="_blank" rel="nofollow noopener">typescriptlang.org/play?#code/PTA… ➡️ Blog Post with explanations: thomas.preissler.me/blog/2022/03/3…

English
0
0
0
0
Thomas Preißler
Thomas Preißler@TheThomasPr·
I would love to see such powerful language features in #Java as well.
English
0
0
0
0
Thomas Preißler
Thomas Preißler@TheThomasPr·
Fix translation issues at compile time with #TypeScript ➡️ TypeScript Playground: #code/PTAEFUGcEsDsHNQBUCeAHAppAxgJ2mgC6iED2oAbgIYA20AJlYRiblbJDU9KR6E6GykAtmmg0WhaMIwAoEKAAWhQmkgAuEIUUiqkAHRpcGaJE4Zc+mcABGNUvGAAmAAxOnwFwGZgXl8ABXGAQAWkJ0LDwCQjDSEOo6RmYwtg4uKV5IEKYQoVFxDDDpOVkhDmJCVM5uXlAAXlAAb1lQJQwaewB1UlwaenVQAHIACVp7UE72wgBCQYAaFtB6aFoHAebW1qlCCQHBgCEsQgATqXgAhHnF1vpI-CIeWD2AWQA37GUMWFAAZWgWABmPUIAKoimMsAA-INFgBfBatKjYDIcdbXUA2AIqTJozabSABGzCaCEPaHSAnM5fK541rYdjYdp7ACCNhsxg+1PRsLhsh5snCmFAABEMBg0ABpDAoSAAeQBAB4kHNQFKUKAMAAPZiweiQUAAa2lpAByHqhuNpqQAD56ui1RrtV89aAKfgEOjIcgANpqgC6jp1LrdcEQXodAwABgASRpq2H6WOi8VquWKpC+6V+62wyPogawDAUCyyAURZBVdKPB0NZOS6VphWCjAm1jsaoo60AblLzd+lVDstgNBQAClILUGiGEKAAD5NUDeoykTC4cIDafwP0DH4DhBDkfj2qwnulTIVStMFgNAAUlXbVd4aoGSEvKLVAEoN3vEHVbRtNjKClQGMAkaGIBp7zSGpYDVdE8X0SA0DoQgbwAIn0NCP3gzZ9GMegAkZG8cNpUAbwAKwnWAVWXVdwgAOSoGQP3qW1m1bSjJzqBpBlIGxyIwZFBlAL1ONgJdcBXCwGKYjAAwGC5bgBOAMHoBFSNpKCO0efh9V3d14APMcqLnUBFIwZTC3oD8ezxYxCACXBvnY01QICcD6m4oZN2Er03I8gYtMfWDpR7E9ezfDAb0GZZVngfRtgkQYbIFSLoti+x4sUDAqFuXBkp7IA" target="_blank" rel="nofollow noopener">typescriptlang.org/play?#code/PTA… ➡️ Blog Post with explanations: thomas.preissler.me/blog/2022/03/3…
Thomas Preißler tweet media
English
1
1
3
0
Thomas Preißler รีทวีตแล้ว
Ryan Bates
Ryan Bates@rbates·
Every new feature, every new dependency, and every new line of code has a maintenance cost that can sometimes outweigh the initial development cost.
English
4
21
156
0