Comments (7)
Hi, I just noticed the same problem that was mentioned in #43 (comment).
Specifically, a "default" typescript configuration created via tsconfig --init
sets strict: true
, which means that strictFunctionTypes
is enabled by default. So it's unforunate that the .map()
example in the README doesn't work with it.
Here's a full example that fails to compile, which depends only on typesafe-actions
(no need for redux
, react-redux
, etc):
import { createStandardAction } from 'typesafe-actions';
const ADD = '@prefix/ADD';
interface Todo {
title: string;
id: string;
completed: boolean;
}
function cuid(): string {
return 'this is a fake value';
}
// Below is literally what's in README.md.
export const add = createStandardAction(ADD).map(
({ title }: { title: string }) => ({
payload: { title, id: cuid(), completed: false } as Todo,
})
);
This is the error output by tsc
:
error TS2345: Argument of type '({ title }: { title: string; }) => { payload: Todo; }' is not assignable to parameter of type '(payload?: { title: string; } | undefined, meta?: void | undefined) => { payload: Todo; }'.
Types of parameters '__0' and 'payload' are incompatible.
Type '{ title: string; } | undefined' is not assignable to type '{ title: string; }'.
Type 'undefined' is not assignable to type '{ title: string; }'.
Anyways, for now I am just using createAction
for such use cases instead of createStandardAction
, e.g. rewriting the above as:
export const add = createAction(ADD, resolve => {
return ({ title }: { title: string }) => resolve({
title,
id: cuid(),
completed: false
} as Todo);
});
Regardless, thanks again for making this library, I think it will make my redux life much easier!
from typesafe-actions.
I think it might be related to #42, I'm planning to investigate it this week.
from typesafe-actions.
@BoostIO funded this issue with $10. Visit this issue on Issuehunt
from typesafe-actions.
@loadbalance-sudachi-kun funded this issue with $256. Visit this issue on Issuehunt
from typesafe-actions.
@piotrwitek has started working. Visit this issue on Issuehunt
from typesafe-actions.
@piotrwitek has submitted a pull request. See it on IssueHunt
from typesafe-actions.
@piotrwitek has rewarded $186.20 to @piotrwitek. See it on IssueHunt
- 💰 Total deposit: $266.00
- 🎉 Repository reward(20%): $53.20
- 🔧 Service fee(10%): $26.60
from typesafe-actions.
Related Issues (20)
- Can I use createAction with a static meta in a way that createReducer.handleAction allows?
- isActionOf - Argument contains array with invalid element at index 0 HOT 2
- Any idea about Redux-Model
- Is it even possible to type thunks properly?
- What is the future of the project? HOT 2
- Infer action and return type from action creator HOT 1
- Access state in createAsyncAction HOT 1
- [5.1] handleAction throws error in test environment using AVA
- Using RootAction makes TypeScript compilation and vscode intellisense extremly slow HOT 1
- Suggestion for safer redux-saga types with typed-redux-saga
- Wrong Documentation HOT 1
- Error: 'createAction' is not exported by typesafe-actions.umd.production.js
- Import declaration conflicts with local declaration of 'RootState'.
- Documentation for polymorphic action
- handleAction allows return object with properties not pesent in the state type HOT 2
- Request: Change branch name master to main
- Why createReducer's handleAction exclude InputAction and HandledAction?
- The result type of createReducer is any instead of Reducer HOT 2
- Allow createReducer to be used without initial state HOT 6
- Error After upgrade from Angular 13 to 14 (A type annotation is necessary) HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from typesafe-actions.