TypeScript Examples
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 960
- Forks
- 43
- Avg merge
- 19m
- Merged PRs (30d)
- 1
Description
Would be nice to have examples in the README for using types with Hookable e.g.
import { createHooks } from 'hookable';
export type HookTypes = {
hello: (value: string) => void;
ping: (value: string) => string;
};
// Create a hookable instance
const hooks = createHooks<HookTypes>();
// Hook on 'hello'
hooks.hook('hello', (val: string) => console.log(val));
// Call 'hello' hook and pass 'Hello World!'
hooks.callHook('hello', 'Hello World!');
// Hook on 'ping' that returns 'PONG'
hooks.hook('ping', (val: string) => {
console.log(val);
return 'PONG';
});
// Call 'ping' hook and pass 'PING'
hooks.callHook('ping', 'PING').then((val) => {
console.log(val);
});
However I ran into an unexpected issue with the return type... if I set the type to the following it works without errors. But surely I need to specify the return type here right?
ping: (value: string) => void
Argument of type '(val: string) => string' is not assignable to parameter of type 'never'.(2345)
Editor: https://stackblitz.com/edit/typescript-fkfd5n?devtoolsheight=33&file=index.ts
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the README and reproducing the reported behavior in the linked StackBlitz TypeScript example. Compare the documented Hookable type examples with the reported return-type error, then verify that the README presents accurate usage and that the example's expected typing behavior is clear.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100