小编Nic*_*one的帖子

如何添加Jasmine自定义匹配器Typescript定义?

我一直在环顾 四周,这个问题似乎是一个反复出现的问题.但是,我发现的解决方案似乎都不适合我.

使用以下内容:

{
  "typescript": "2.3.2",
  "jasmine-core": "2.6.1",
  "@types/jasmine": "2.5.47"
}
Run Code Online (Sandbox Code Playgroud)

我不能让Typescript合并包含我的自定义匹配器定义的名称空间声明.

添加这个:

declare namespace jasmine {
  interface Matchers<T> {
    toBeAnyOf(expected: jasmine.Expected<T>, expectationFailOutput?: any): boolean;
  }
}
Run Code Online (Sandbox Code Playgroud)

隐藏之前声明的所有其他类型jasmine.编译器输出错误,例如:

[ts] Namespace 'jasmine' has no exported member 'CustomMatcherFactories'
[ts] Namespace 'jasmine' has no exported member 'CustomMatcher'.
Run Code Online (Sandbox Code Playgroud)

是否有任何正确的方法来添加自定义匹配器并使其与Typescript很好地协作?

tslint如果您使用tslint:recommended规则集,还有一个问题.这些规则不允许使用namespacemodule关键字,因此我必须禁用linter(或更改"no-namespace"规则)才能尝试这一点.不确定如果"不推荐",如何扩展定义.

javascript types jasmine typescript angular

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

如何避免在 Webpack 构建中捆绑模拟模块?

我们正在努力使我们的 React + GraphQL 项目独立于生态系统中的任何其他层,以改善开发人员体验。为此,我们编写了一个瘦 HOC,它包装了 Apollo 自己的graphqlHOC,并使用内部环境变量在网络获取和模拟数据之间切换。在生产版本中,所有模拟数据显然都没有使用,即使它 import编辑。

有什么方法可以避免在 Webpack 的生产包中包含您知道不需要的模块,同时保持其他所有内容相同/不破坏应用程序?

动态import() 这样的东西可以解决问题,但最终会分块你的构建而不是省略你不需要/不想要的东西。

更新:该应用程序是使用create-react-app 创建的 1.0.17,后来被弹出。

javascript reactjs webpack babeljs graphql

7
推荐指数
1
解决办法
1544
查看次数

为什么3 [4,2]在JS中评估为undefined?

对于一定的,可以说是不合逻辑或嘲弄的程度,我可以了解JS结果,如:

// Coercing to string and concatenating
3 + [4,2]
'34,2'

// Coercing and doing proper math
4 - [2]
2

// Or failing miserably
3 - [4,2]
NaN
Run Code Online (Sandbox Code Playgroud)

但为什么要3[4,2]评价undefined?至少在上面的例子中有操作执行(东西正在做的).在相关的说明中,具有讽刺意味的是[4,2]3提出SyntaxError: Unexpected number错误.

这里发生了什么?

上下文:花了早晨发现和挤压其中的错误,(逗号)从数字和嵌套数组的混合的阵列丢失:[1, 2, 3 [4, 2], 5, [8], 7].

javascript arrays

3
推荐指数
1
解决办法
56
查看次数