我正在尝试玩笑测试的覆盖率功能,但输出显示测试引用的文件的 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
在 UI 中有一个地方我们想要本地化字符串:
例如,对于法语语言环境,它将是:
如何使用 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/
非常感谢
我将源类型定义为:
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)?
感谢您的建议!:)
我在我的角度应用程序中使用本地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)我开始使用类星体,我希望以类星体方式以输入为中心(使用类星体可用的类、组件和指令)。我不想用 !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)
谢谢你的任何提示。
这是代码:
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 ×2
angular ×1
angularjs ×1
calendar ×1
html5 ×1
ionic2 ×1
istanbul ×1
javascript ×1
jestjs ×1
momentjs ×1