Gives you automatically typed error codes for multiple features at once.
Gives you automatically typed error codes for multiple features at once.
Use it to rename an object key your backend developers consistently misspell
parms -> params
Use it to rename an object key your backend developers consistently misspell
parms -> params
Does the opposite of Readonly<T>. Weird that TS doesn't have this built-in.
Does the opposite of Readonly<T>. Weird that TS doesn't have this built-in.
1. You can use 'glob' from Node instead of a library! (still experimental, available in 22+)
But glob returns an async iterator, which can be annoying to work with. So...
2. Array.fromAsync lets you turn an async iterator into an array. Beautiful.
1. You can use 'glob' from Node instead of a library! (still experimental, available in 22+)
But glob returns an async iterator, which can be annoying to work with. So...
2. Array.fromAsync lets you turn an async iterator into an array. Beautiful.
Covering everything you need to enter the AI world:
- What LLM's are used for
- The AI engineer mindset
- Evals
- 17 techniques for improving your LLM-powered apps
Covering everything you need to enter the AI world:
- What LLM's are used for
- The AI engineer mindset
- Evals
- 17 techniques for improving your LLM-powered apps
I have written a book, produced 5 courses, made countless videos and articles, and delivered workshops about TypeScript.
And today I learned that TS can do this:
I have written a book, produced 5 courses, made countless videos and articles, and delivered workshops about TypeScript.
And today I learned that TS can do this:
So, as a research project, I refactored the code to make the underlying logic clearer.
So, as a research project, I refactored the code to make the underlying logic clearer.
Add this to get Cursor-like tab completions for suggesting the next edit.
Add this to get Cursor-like tab completions for suggesting the next edit.
Agent: give the LLM control of execution. Slower, but better at a wider range of things.
Workflow: use code to control execution. Faster, but more specialised.
Ultimately, it comes down to the product you're building.
Agent: give the LLM control of execution. Slower, but better at a wider range of things.
Workflow: use code to control execution. Faster, but more specialised.
Ultimately, it comes down to the product you're building.
These are its reasoning tokens, not the text emitted to the user.
These are its reasoning tokens, not the text emitted to the user.
This small change has a pretty huge impact on the user experience. Feels like your agent is really getting to know you.
This small change has a pretty huge impact on the user experience. Feels like your agent is really getting to know you.
It's a 16-lesson tutorial on Vercel's AI SDK. It's the missing piece for working with AI in TypeScript.
No bullshit, no hype. Just solid, practical advice.
https://www.aihero.dev/vercel-ai-sdk-tutorial
It's a 16-lesson tutorial on Vercel's AI SDK. It's the missing piece for working with AI in TypeScript.
No bullshit, no hype. Just solid, practical advice.
https://www.aihero.dev/vercel-ai-sdk-tutorial
This time, it's the AI SDK not providing a built-in type for tool calls - so I've got to extract it using:
- Awaited<T>, to unwrap the promise
- [number], to turn the array of tool calls to a single member
This time, it's the AI SDK not providing a built-in type for tool calls - so I've got to extract it using:
- Awaited<T>, to unwrap the promise
- [number], to turn the array of tool calls to a single member
I'm open-sourcing AI Hero, the repo of material I'm putting together for my course.
So far, there are 16 runnable examples on Vercel's AI SDK. Full tutorial dropping any day now.
https://github.com/ai-hero-dev/ai-hero/
I'm open-sourcing AI Hero, the repo of material I'm putting together for my course.
So far, there are 16 runnable examples on Vercel's AI SDK. Full tutorial dropping any day now.
https://github.com/ai-hero-dev/ai-hero/
- 100% TypeScript
- AI SDK
- Question-matching retrieval based on a custom dataset
- Clack for beautiful CLI
- 100% TypeScript
- AI SDK
- Question-matching retrieval based on a custom dataset
- Clack for beautiful CLI
This forces the 'size' property in generateImage to match `${number}x${number}`. Beautiful.
This forces the 'size' property in generateImage to match `${number}x${number}`. Beautiful.
- Lets you separate concerns into different prompts
- Makes your system more testable
Really interesting for agents/workflows with several discreet concerns, like searching, handling git, and file editing.
- Lets you separate concerns into different prompts
- Makes your system more testable
Really interesting for agents/workflows with several discreet concerns, like searching, handling git, and file editing.
Bringing everything the team has learned from Total TypeScript for an awesome AI course.
Bringing everything the team has learned from Total TypeScript for an awesome AI course.
If folks use it with an out-of-date tsconfig.json (that doesn't support entrypoints like my-package/a or my-package/b), I direct them to a .d.ts file like this:
It still works at runtime, but on the type level it'll warn them.
If folks use it with an out-of-date tsconfig.json (that doesn't support entrypoints like my-package/a or my-package/b), I direct them to a .d.ts file like this:
It still works at runtime, but on the type level it'll warn them.
- Node 22 WILL be getting TypeScript support by default.
- Type-only namespaces (which I actually have started using and quite like) will be supported by default.
www.totaltypescript.com/typescript-i...
- Node 22 WILL be getting TypeScript support by default.
- Type-only namespaces (which I actually have started using and quite like) will be supported by default.
www.totaltypescript.com/typescript-i...
They're basically just 2 if/else statements in a trenchcoat.
More info:
www.totaltypescript.com/tsconfig-che...
They're basically just 2 if/else statements in a trenchcoat.
More info:
www.totaltypescript.com/tsconfig-che...