diff --git a/README.md b/README.md index d30b1a0..f0633aa 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ pairing with smart people at Hashrocket. For a steady stream of TILs, [sign up for my newsletter](https://tinyletter.com/jbranchaud). -_1042 TILs and counting..._ +_1043 TILs and counting..._ --- @@ -50,6 +50,7 @@ _1042 TILs and counting..._ * [Shell](#shell) * [Tailwind CSS](#tailwind-css) * [tmux](#tmux) +* [TypeScript](#typescript) * [Unix](#unix) * [Vercel](#vercel) * [Vim](#vim) @@ -944,6 +945,10 @@ _1042 TILs and counting..._ - [tmux in your tmux](tmux/tmux-in-your-tmux.md) - [Toggle Between Two Common Sessions](tmux/toggle-between-two-common-sessions.md) +### TypeScript + +- [Re-Export An Imported Type](typescript/re-export-an-imported-type.md) + ### Unix - [All The Environment Variables](unix/all-the-environment-variables.md) diff --git a/typescript/re-export-an-imported-type.md b/typescript/re-export-an-imported-type.md new file mode 100644 index 0000000..6adad63 --- /dev/null +++ b/typescript/re-export-an-imported-type.md @@ -0,0 +1,31 @@ +# Re-Export An Imported Type + +I have a TypeScript module that is defining an XState machine. Among other +things, it imports the `DoneEventObject` type from `xstate`. I want to +re-export that type so that any modules using this machine have access to that +type definition. + +This can be done a couple of ways. One way to import it under an aliased name +and then assign + export it using the original name. + +```typescript +import {Machine, DoneEventObject as _DoneEventObject} from 'xstate' + +export type DoneEventObject = _DoneEventObject +``` + +This works, but adds some potential indirection and confusion through the +double assignment. + +Another way of doing this is to reference the type off the import statement as +part of an assignment. + +```typescript +import {Machine} from 'xstate' + +export type DoneEventObject = import('xstate').DoneEventObject +``` + +This imports, assigns, and exports the type in a single statement. + +[source](https://github.com/microsoft/TypeScript/issues/28481#issuecomment-552938424)