Error: TS2345: when compiling with typescript
By : sandeep
Date : March 29 2020, 07:55 AM
I think the issue was by ths following , I get this error from the 1.8.10 ts compiler in the context of a nodejs / express project: , module.exports = directory_router code :
export = directory_controller
|
Typescript error TS2345 Error: TS2345:Argument of type 'Buffer' is not assignable to parameter of type 'string'
By : Ian
Date : March 29 2020, 07:55 AM
Any of those help I think the error is thrown on the input parameter of JSON.parse. Try to first call toString on it then pass to the function. code :
let communicationInformation = JSON.parse(newCommunication.content.toString());
|
Ngrx Effects withLatestFrom causes an exception
By : Prasad Kulkarni
Date : March 29 2020, 07:55 AM
it fixes the issue Seems like this issue is fixed if withLatestFrom is wrapped in concatMap operator as it is done in ngrx documentation example (collection.effects.ts). code :
ofType(BOOK_LIST_REQUEST),
concatMap(action => of(action).pipe(
withLatestFrom(this.store.pipe(
select(selectBookshop),
map(bookshop => bookshop.library.publisher)
)
)
|
Vue&TypeScript: how to avoid error TS2345 when import implemented in TypeScript component outside of project directo
By : user3059140
Date : December 22 2020, 03:01 PM
With these it helps This has become quite a long answer. If you don't have time to read it all there's a TL;DR at the end. Analysis Error Message code :
declare function Component<V extends Vue>(options: ComponentOptions<V> & ThisType<V>): <VC extends VueClass<V>>(target: VC) => VC;
// ...
declare function Component<VC extends VueClass<Vue>>(target: VC): VC;
ERROR in /tmp/main-project/InitializeProjectGUI__assets/SingletonComponents/SkipProjectInitializationStepPanel/SkipProjectInitializationStepPanel.ts
../InitializeProjectGUI__assets/SingletonComponents/SkipProjectInitializationStepPanel/SkipProjectInitializationStepPanel.ts
[tsl] ERROR in /tmp/main-project/InitializeProjectGUI__assets/SingletonComponents/SkipProjectInitializationStepPanel/SkipProjectInitializationStepPanel.ts(10,24)
TS2322: Type '{ SimpleCheckbox: typeof SimpleCheckbox; }' is not assignable to type '{ [key: string]: VueConstructor<Vue> | FunctionalComponentOptions<any, PropsDefinition<any>> | ComponentOptions<never, any, any, any, any, Record<string, any>> | AsyncComponentPromise<any, any, any, any> | AsyncComponentFactory<...>; }'.
Property 'SimpleCheckbox' is incompatible with index signature.
Type 'typeof SimpleCheckbox' is not assignable to type 'VueConstructor<Vue> | FunctionalComponentOptions<any, PropsDefinition<any>> | ComponentOptions<never, any, any, any, any, Record<string, any>> | AsyncComponentPromise<any, any, any, any> | AsyncComponentFactory<...>'.
Type 'typeof SimpleCheckbox' is not assignable to type 'VueConstructor<Vue>'.
Types of property 'extend' are incompatible.
Type '{ <Data, Methods, Computed, PropNames extends string = never>(options?: import("/tmp/dependency/node_modules/vue/types/options").ThisTypedComponentOptionsWithArrayProps<import("/tmp/depende...' is not assignable to type '{ <Data, Methods, Computed, PropNames extends string = never>(options?: import("/tmp/main-project/node_modules/vue/types/options").ThisTypedComponentOptionsWithArrayProps<import("/tmp/main-...'.
...
Type 'import("/tmp/dependency/node_modules/vue/types/vnode").ScopedSlotReturnValue' is not assignable to type 'import("/tmp/main-project/node_modules/vue/types/vnode").ScopedSlotReturnValue'.
Type 'VNode' is not assignable to type 'ScopedSlotReturnValue'.
├─ main-project
│ ├─ node_modules // installed packages listed below (without sub-dependencies)
│ │ ts-loader@6.1.0
│ │ typescript@3.6.3
│ │ vue@2.6.10
│ │ vue-property-decorator@8.2.2
│ │ vuex@3.1.1
│ │ webpack@4.40.2
│ │ webpack-cli@3.3.9
│ ├─ SkipProjectInitializationStepPanel.ts
│ ├─ tsconfig.json
│ └─ webpack.config.js
└─ dependency
├─ node_modules // installed packages listed below (without sub-dependencies)
│ vue@2.6.10
└─ SimpleCheckbox.ts
{
"compilerOptions": {
"target": "es6",
"strict": true,
"moduleResolution": "node"
}
}
module.exports = {
entry: './SkipProjectInitializationStepPanel.ts',
mode: 'development',
module: {
rules: [
{
test: /\.ts$/,
loader: 'ts-loader'
}
]
},
resolve: {
extensions: ['.ts', '.js']
}
};
import { Component } from 'vue-property-decorator';
import 'vuex';
import SimpleCheckbox from '../dependency/SimpleCheckbox';
Component({ template: '', components: { SimpleCheckbox } });
import Vue from 'vue';
export default class SimpleCheckbox extends Vue {}
import _Vue, { WatchOptions } from "vue";
// augment typings of Vue.js
import "./vue";
import { mapState, mapMutations, mapGetters, mapActions, createNamespacedHelpers } from "./helpers";
import { Store } from "./index";
// ...
declare module "vue/types/vue" {
interface Vue {
$store: Store<any>;
}
}
|
How to use withLatestFrom with a selector in ngrx?
By : user3699639
Date : March 29 2020, 07:55 AM
this one helps. This is covered in the NgRx Docs - Incorporating State but I found Brandon Roberts github comment more useful: code :
actions.pipe(
ofType('SOME_ACTION')
someMap(action => doSomething(action))
)
actions.pipe(
ofType('SOME_ACTION'),
withLatestFrom(store.select(someThing)),
someMap(([action, latest]) => doSomething(action, latest))
)
actions.pipe(
ofType('SOME_ACTION'),
someMap(action =>
of(action).pipe(
withLatestFrom(store.select(someThing)),
someMap(([action, latest]) => doSomething(action, latest))
)
)
getDoc$ = createEffect(() => {
return this.actions$.pipe(
ofType(fromDocs.getDocument),
switchMap(action =>
of(action).pipe(
withLatestFrom(
this.store.select(fromDocs.getById, { id: action.payload.id })
),
map(([action, latest]) => {
return fromDocs.someAction();
})
)
)
);
});
|