小编Nah*_*nde的帖子

Jest:忽略代码覆盖的行

在Jest中,有没有办法忽略测试覆盖的代码?我试过用

/* istanbul ignore next */
Run Code Online (Sandbox Code Playgroud)

但它似乎没有用.

code-coverage istanbul jestjs

28
推荐指数
4
解决办法
1万
查看次数

打字稿中的通用对象类型

在typescript中有任何方法可以为变量分配通用对象类型.这就是'泛型对象类型'的意思

let myVariable: GenericObject = 1 // Should throw an error
                              = 'abc' // Should throw an error
                              = {} // OK
                              = {name: 'qwerty'} //OK
Run Code Online (Sandbox Code Playgroud)

即它应该只允许javascript对象分配给变量而没有其他类型的数据(数字,字符串,布尔值)

types typescript

12
推荐指数
2
解决办法
1万
查看次数

React-Redux连接打字稿中的问题

我试图制作一个传递给react-redux connect函数的组件.该组件如下:

interface ITestProps {
  id: number
}

class TestComponent extends React.Component<ITestProps, {}> {
  render() {
    return (<div>
      {this.props.name}
    </div>)
  }
}

mapStateToProps(state) {}
mapDispatchToProps(dispatch) {}

let ConnectedComponent = connect(
  mapStateToProps,
  mapDispatchToProps
)(TestComponent)
Run Code Online (Sandbox Code Playgroud)

如果我ConnectedComponent像这样渲染,上面的代码似乎工作

<ConnectedComponent></ConnectedComponent>
Run Code Online (Sandbox Code Playgroud)

即没有id道具.不应该抛出错误,因为ConnectedComponent它只是连接形式,TestComponent并且TestComponent应该有表格的道具ITestProps.这是它应该如何表现或我做错了什么.

typescript reactjs redux

10
推荐指数
1
解决办法
8706
查看次数

使用Jest测试命令行工具

我有一个应用程序,它将脚本公开为命令.如何使用jest测试此脚本.更具体地说,如何使用jest执行此脚本然后应用相应的期望?该脚本不会导出任何函数,它只包含一串顺序执行的代码行.

jestjs

10
推荐指数
1
解决办法
723
查看次数

redux垃圾收集如何工作?

redux垃圾收集究竟是如何工作的.我们都知道redux促进了不变性.那么陈旧的状态实例会发生什么?例如在我的reducer中如果我有一个例如:

...
case 'MY_ACTION':
     return state.set('name', action.name)
... 
Run Code Online (Sandbox Code Playgroud)

现在,如果我触发MY_ACTION动作100次,代码将创建一个新对象100次.

我的问题是先前不再使用的状态对象会发生什么.他们会留给javascript /浏览器垃圾收集器来决定如何处理?如果是的话,这不是一个性能问题,即这么多陈旧的"状态"对象会增加javascript垃圾收集器的负载,从而降低代码的性能吗?

javascript redux

6
推荐指数
1
解决办法
663
查看次数

Typescript/ES6 的 Jest 预处理器

我正在尝试使用 Jest 测试 Typescript 类。由于我需要使用 es6,async/await我需要先将 typescript类编译为 es6,然后使用 babel 编译为 es5。为了实现这一点,我需要向预处理器添加什么。我当前的预处理器如下所示:

const tsc = require('typescript');

module.exports = {
    process: function(src, path) {
        if (path.endsWith('.ts') || path.endsWith('.tsx')) {
            return tsc.transpile(
                src,
                {
                    module: tsc.ModuleKind.CommonJS,
                    jsx: tsc.JsxEmit.React
                },
                path,
                []
            );
        }
        return src;
    }
};
Run Code Online (Sandbox Code Playgroud)

我需要添加target: tsc.ScriptTarget.ES6吗?当我这样做时,我unexpected identifier =在处理的代码中得到一个错误,它看起来像我的.ts类的转译版本。我从中收集到的是,我的预处理器正在将数据编译为 es6,但我的 es6 没有被转换为 es5。还有任何现成的预处理器可以做到这一点吗?

typescript ecmascript-6 jestjs

4
推荐指数
1
解决办法
2723
查看次数

Typescript 中类中所有函数的强制返回类型

我正在尝试在打字稿中构建一个类,其中所有函数都必须返回一个承诺而不显式声明每个函数的返回类型换句话说,向类添加非异步函数应该抛出一个错误,即

class myClass {
    errfunc() { // This should throw a compiler error
        return 1;
    }

    correctfunc() {
        return new Promise((res) => res('success')) // This should work correctly
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试了以下

interface PromiseDictionary {
    [key: string]: () => Promise<any>;
}
class myClass implements PromiseDictionary {
    a() {
        return new Promise(res => res('success'))
    };
}
Run Code Online (Sandbox Code Playgroud)

但它抛出以下错误:

Class 'myClass' incorrectly implements interface 'PromiseDictionary'.
Index signature is missing in type 'myClass'.`
Run Code Online (Sandbox Code Playgroud)

如何才能做到这一点?

typescript

2
推荐指数
1
解决办法
274
查看次数