小编Luc*_*oke的帖子

jest --collect-coverage 将文件标记为 100% 覆盖,即使没有对它们进行测试

我正在尝试玩笑测试的覆盖率功能,但输出显示测试引用的文件的 100% 覆盖率,但根本没有覆盖..大多数情况下它们只是经过测试的模块的依赖项,我还远远没有使用它们的所有导出方法。知道为什么我会收到这种幻影保险吗?感谢您的任何提示

--------------------------------------|----------|----------|----------|----------|-------------------|
File                                  |  % Stmts | % Branch |  % Funcs |  % Lines | Uncovered Line #s |
--------------------------------------|----------|----------|----------|----------|-------------------|
All files                             |     6.93 |     5.48 |     3.22 |     7.18 |                   |
 src                                  |    10.11 |    10.53 |     5.88 |    10.11 |                   |
  const.ts                            |      100 |      100 |      100 |      100 |                   |
  utilities.ts                        |      100 |      100 |      100 |      100 |                   |
... etc
Run Code Online (Sandbox Code Playgroud)

utility.ts 有多种导出方法,但尚未测试任何方法,因此被视为 100% 覆盖:/

我没有用谷歌搜索到任何类似的案例。大多数人问为什么他们的测试覆盖率不是 100% :D

code-coverage istanbul jestjs

7
推荐指数
0
解决办法
1945
查看次数

momentjs 自定义日历输出并重用时刻值

在 UI 中有一个地方我们想要本地化字符串:

  • 如果日期是在同一天:“今天,02/06/2018”
  • 如果是在第二天:“明天,02/07/2018”
  • 如果是在下周:“星期一,02/12/2018”
  • 如果晚了:“10 天后,02/16/2018”

例如,对于法语语言环境,它将是:

  • 如果日期在同一天:“Aujourd'hui, 06/02/2018”
  • 如果是在第二天:“Demain, 07/02/2018”
  • 如果是在下周:“Lundi,12/02/2018”
  • 如果晚了:“En 10 jours, 16/02/2018”

如何使用 moment.js 实现这一目标?请向我提供代码,而不是文档链接,我已阅读文档,但没有帮助。

我预计这适用于第一种情况: moment().calendar( null, { sameDay : '[Today], L', }); 但“今天”没有本地化。德语也是“Today”,应该是“Heute”。因为我认为“今天”是用 momentjs 替换关键字以获得正确的本地化值。但实际上它只是文字字符串。

编辑 2018 年 4 月 6 日(添加代码示例)

moment.locale('de');
var result = moment().calendar();
var result2 = moment().calendar( null, {
  sameDay : '[Today], L',
});
document.getElementById('result').innerHTML = result;
document.getElementById('result2').innerHTML = result2;
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.0/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.0/locale/de.js"></script>
<div id="result"></div>
<div id="result2"></div>
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/8x4on1nf/11/

非常感谢

javascript calendar momentjs

5
推荐指数
0
解决办法
908
查看次数

不接受 Typescript toUpperCase() 转换

我将源类型定义为:

unit: 'hour'|'day'|'week'|'month'
Run Code Online (Sandbox Code Playgroud)

我将它用作 moment.js 库的小写字母。我还需要它大写作为后端端点。所以我的 http 方法接受参数为

unit: 'HOUR'|'DAY'|'WEEK'|'MONTH'
Run Code Online (Sandbox Code Playgroud)

但打字稿不接受方法调用中通过 toUpperCase 的转换。

“string”类型的参数不可分配给“HOUR”|“DAY”|“WEEK”|“MONTH”类型的参数

在此输入图像描述

打字稿中是否有一个优雅的解决方案,我不会破坏静态类型检查,同时我不会创建额外的转换器辅助函数(自定义 toUpperCase)?

感谢您的建议!:)

typescript

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

HTML5原生的DragEnter / DragLeave事件会交替触发

我在我的角度应用程序中使用本地HTML拖放,但发现此事件闪烁问题

这个答案不能解决我的问题,因为他们正在手动移动元素。我将其留在本机实现上。

我的简化代码:

var app = angular.module('app', []);
app.directive('amDnd', function() {
  return {
    scope: true,
    link: function($scope, $element, $attr) {
      var el = $element[0];
      el.draggable = true;

      el.addEventListener('dragenter', function dragEnter(e) {
        console.log($scope.$id, 'dragEnter');
      }, false);
      el.addEventListener('dragleave', function dragEnter(e) {
        console.log($scope.$id, 'dragleave');
      }, false);

    }
  };
});
Run Code Online (Sandbox Code Playgroud)
div[am-dnd] {
  border: 2px solid red;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app">
  <div am-dnd>
    <p>DRAG ME</p>
  </div>
  <div am-dnd>
    <h3>DRAG OVER THIS AREA</h3>
    <p>See the console, drag enter and leave are fired again and …
Run Code Online (Sandbox Code Playgroud)

html5 drag-and-drop angularjs

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

如何以“类星体方式”居中输入

我开始使用类星体,我希望以类星体方式以输入为中心(使用类星体可用的类、组件和指令)。我不想用 !important 来强制风格。这是codepen https://codepen.io/luckylooke11/pen/RwwqJex

<div id="q-app">
  <q-layout>
    <q-page-container>
    <q-page class="home-page q-gutter-lg">
    <div class="row justify-center q-pa-md">
      <div class="col-auto">
        <img alt="My image" class="image" src="../assets/images/image.png" />
      </div>
      <div class="col-12 text-center self-center">
        <h2>My gooogle search</h2>
        <q-input outlined square v-model="text" class="input self-center" placeholder="my centered input">
          <template v-slot:append>

            <q-icon v-if="text !== ''" name="close" @click="text = ''" class="cursor-pointer"></q-icon>
            <q-icon v-else name="search"></q-icon>
          </template>
        </q-input>
      </div>
    </div>
  </q-page>
    </q-page-container>
    </q-layout>
</div>
Run Code Online (Sandbox Code Playgroud)

谢谢你的任何提示。

quasar-framework

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

试图通过suppressExcessPropertyErrors 编译器选项抑制TS2339

这是代码:

var x = {};
x.test = 'abc';
Run Code Online (Sandbox Code Playgroud)

获取打字稿编译器错误:

TS2339:类型“{}”上不存在属性“test”。

我想禁止这种警告的对象的文字,我想这将suppressExcessPropertyErrors成为tsconfig.json应该解决这个问题。

配置:

{
    "compilerOptions": {
        "suppressExcessPropertyErrors": true
    },
    ...
}
Run Code Online (Sandbox Code Playgroud)

但没有任何改变..编译器仍然显示错误。

谢谢你的任何提示;)

typescript ionic2 angular

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