小编Ziv*_*zer的帖子

需要使用TypeScript,SystemJS和Electron的nodejs"child_process"

我正在研究一个简单的nodejs 电子(以前称为原子壳)项目.我正在使用angular 2编写它,使用项目设置与他们在打字稿文档中建议的相同项目设置:

TSC:

{
  "compilerOptions": {
    "target": "es5",
    "module": "system",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false
  },
  "exclude": [
  "node_modules",
  "typings/main",
  "typings/main.d.ts"
  ]
}
Run Code Online (Sandbox Code Playgroud)

我需要运行一个命令,我发现我可以使用节点"child_process"来完成它.无论如何我无法找到"import"或"require"它,同时从node.d.ts文件中使用它的类型.我在node.d.ts文件中找到了符合我需要的"child_process"接口,这就是它在node.d.ts文件中查看的方式:

    declare module "child_process" {
    import * as events from "events";
    import * as stream from "stream";

    export interface ChildProcess extends events.EventEmitter {
        stdin:  stream.Writable;
        stdout: stream.Readable;
        stderr: stream.Readable;
        pid: number;
        kill(signal?: string): void;
        send(message: any, sendHandle?: any): void;
        disconnect(): void;
        unref(): void;
    }

    export function spawn(command: string, …
Run Code Online (Sandbox Code Playgroud)

require node.js typescript systemjs electron

9
推荐指数
3
解决办法
2万
查看次数

减速器动作中的ngrx有效负载未编译

我正在尝试将我的角度2应用程序迁移到角度4和ngrx 4.

我正在处理一个奇怪的打字稿编译问题,这是我在此次更新之前没有的.我在离线环境中工作,所以我不能在这里分享确切的代码.

我在网上寻找问题,我能找到的最接近的问题就是这个问题: 关于有效载荷类型 的问题这个问题中的代码与我试图做的有些相似,但区别在于我从动作中删除了ActionTypes对象(这是该问题的建议答案)但它没有解决我的编译错误.

我不能把确切的代码我解决这里,但我完全基于github上的ngrx示例ngrx官方示例我的代码

让我们看一下书籍减速机和书籍动作书动作 书籍减速机的例子

我的代码基本相同,当我尝试从操作中获取有效负载时,每个reducer情况(在交换机情况下)都会发生错误,它告诉我类似于:

Type 'string | Book | Book[]' is not assignable to type 'Book'. Type 'string' is not assignable to type 'Book'.
Run Code Online (Sandbox Code Playgroud)

(在我的代码中,而不是Book我有不同的类,但它的想法几乎相同)

现在我通过从A |中转换动作类型来解决错误 B | B是与交换机中的情况相对应的特定动作类型(使用as typescript关键字).这个解决方案感觉很糟糕和hacky,我想知道是否有更好的解决方案.

我使用的版本:typescript:2.4.1(我怀疑它可能连接到ngrx示例,不使用与我相同的更新的打字稿版本)ngrx @ store:4.0.3 ngrx @ core:1.2.0 angular :(最新的17.9.17,角度内有很多包,我不认为它对于这个错误使用哪个角度非常重要,但我说这只是为了安全方面)打字稿:(2.4.1)(我读了ngrx关于需要升级打字稿的官方迁移文档,所以我做了)


更新:由于我得到了一个与我的问题无关的答案,而且我也被问过,这是我的代码中的一部分失败了(我无法发布确切的帖子,但我手工复制相关部分):

任务reducer.ts:

import * as MissionActionsFile from "./mission-actions";

export type State = .... // doesnt matter

const initialState: State = // doesnt matter as well

export function reducer(state: State …
Run Code Online (Sandbox Code Playgroud)

typescript ngrx angular typescript2.4 ngrx-store-4.0

8
推荐指数
1
解决办法
1858
查看次数

将自定义表单控件连接到角度2中的父表单验证

我最近尝试使用角度2创建自己的自定义表单控件.自定义控件应该有2个输入,并编辑具有已知结构的现有对象.例如:

class model {
    public fieldOne: number;
    public fieldSec: number;
}
Run Code Online (Sandbox Code Playgroud)

我遵循了我在这里找到的好解释: 编写自定义表单控件的指南

它工作正常,除了指南没有提到如何将自定义控件表单验证连接到使用它的表单.让我们看一个简化的例子:

自定义控件模板看起来像这样:

<form>
    <input [(ngModel)]="existingModel.fieldOne">
    <input [(ngModel)]="existingModel.fieldSec" required>
</form>
Run Code Online (Sandbox Code Playgroud)

我们用它来编辑现有的模型,其值为:

{
    fieldOne: 20,
    fieldSec: undefined
}
Run Code Online (Sandbox Code Playgroud)

我们在我的应用程序中以某种形式使用它,我们需要自定义控件来编辑此模型:

<form #formVar="ngForm">
    <my-custom-control [(ngModel)]="existingModel" required>
    </my-custom-control>
</form>
Run Code Online (Sandbox Code Playgroud)

在我可以编辑模型的问题上,这种示例适用于我的应用程序.问题是我希望在表单无效时向用户显示,如果我查看formVar.valid,即使existingModel.fieldSec未定义并且在自定义控件表单中对其进行了必需的验证,它也将为true .

html-validation angular2-forms angular2-template angular2-components angular

5
推荐指数
1
解决办法
3359
查看次数