我试图了解 TypeScript 条件类型的工作原理。这是我的代码。有类型错误:
interface MyType {
name: string;
}
const testFunc = <T extends MyType | string>(
what: T
): T extends MyType ? MyType : string => {
if (typeof what === 'object') {
return what['name'];
}
return what;
};
Run Code Online (Sandbox Code Playgroud)
正确的用法是什么?
我正在用d3生成折线图.它工作,但打字稿代码抱怨在一个不存在的属性
类型'[number,number]'上不存在属性'x'
看着错误.看起来预期的数据点是一个带有两个数字的数组.
但我正在传递一个对象.D3应该支持我认为.
有谁知道如何摆脱这个错误而不改变我的数据?
在角度2中使用rxjs时,import { Observable } from 'rxjs/Observable'
和
之间有什么区别
import { Observable } from 'rxjs'吗?
我认为在讨论之后我非常清楚角度变化检测是如何工作的:为什么当[值]改变时,变化检测不会发生在这里?
但看看这个插件:https://plnkr.co/edit/jb2k7U3TfV7qX2x1fV4X ? p = preview
@Component({
selector: 'simple',
template: `
<div (click)="onClick()">
{{myData[0].name}}
</div>
`,
changeDetection: ChangeDetectionStrategy.OnPush
})
export class Simple {
public @Input() myData;
constructor() {
}
public onClick() {
}
}
Run Code Online (Sandbox Code Playgroud)
点击a,它改为c
据我所知,click事件触发了应用程序级别的更改检测,但[myData] ="testData"仍然引用同一个对象,我使用On Push on Simple,为什么会更改?
在我的Javascript代码中,这个正则表达式/(?<=\/)([^#]+)(?=#*)/在Chrome中运行良好,但在safari中,我得到:
无效的正则表达式:无效的组说明符名称
有任何想法吗?
正则表达专家请帮助看看这个问题是否可以通过正则表达式解决:
给定字符串1是任何字符串
字符串2是包含字符串1的所有部分的任何字符串(但不是简单的匹配 - 我将举例)
如何使用正则表达式将字符串2中字符串1的所有部分替换为空白,以便剩下的是不在字符串1中的字符串?
例如:str1 ="test xyz"; str2 ="test ab xyz"
我想要"ab"或"ab"回来.我可以编写什么样的正则表达式,这样当我在str2上运行替换函数时,它将返回"ab"?
这是一些非正则表达式代码:
function findStringDiff(str1, str2) {
var compareString = function(str1, str2) {
var a1 = str1.split("");
var a2 = str2.split("");
var idx2 = 0;
a1.forEach(function(val) {
if (a2[idx2] === val) {
a2.splice(idx2,1);
} else {
idx2 += 1;
}
});
if (idx2 > 0) {
a2.splice(idx2,a2.length);
}
return a2.join("");
}
if (str1.length < str2.length) {
return compareString(str1, str2);
} else {
return compareString(str2, str1);
}
}
console.log(findStringDiff("test …Run Code Online (Sandbox Code Playgroud) 我正在和gulp一起尝试.我已经设置了这样的任务:
gulp.task('lint', function () {
return gulp.src([
'components/myjs.js'
])
// eslint() attaches the lint output to the eslint property
// of the file object so it can be used by other modules.
.pipe(eslint())
// eslint.format() outputs the lint results to the console.
// Alternatively use eslint.formatEach() (see Docs).
.pipe(eslint.format())
// To have the process exit with an error code (1) on
// lint error, return the stream and pipe to failOnError last.
.pipe(eslint.failOnError());
});
Run Code Online (Sandbox Code Playgroud)
当我跑的时候gulp lint
它告诉我很多错误.现在我试图逐一修复它们.但是我必须gulp lint …
根据这里:https://facebook.github.io/create-react-app/docs/running-tests#writing-tests
__PRE__
我不知道为什么不建议将块放在describe块中.
这是我的 plunker:http ://plnkr.co/edit/q3MpeDT2rSSCUy8CHdUa?p=preview
div.tooltip {
position: absolute;
text-align: center;
width: 100px;
height: 500px;
padding: 2px;
font: 12px sans-serif;
background: lightsteelblue;
border: 0px;
border-radius: 8px;
overflow-y: scroll;
}
Run Code Online (Sandbox Code Playgroud)
当您将鼠标悬停在其中一个圆圈上时,即使高度足以容纳内容,也始终可以看到带有垂直滚动条的工具提示。为什么垂直滚动始终可见。我如何让它仅在内容实际溢出时才显示?
我是 ramdajs 的新手。假设我有一个对象:
{a: 1, b: 2, c: 3}
Run Code Online (Sandbox Code Playgroud)
我可以这样做将 a 更改为 11:
const aLens = R.lensProp('a');
R.set(aLens, 11, {a: 1, b: 2, c: 3});
Run Code Online (Sandbox Code Playgroud)
如何通过一个电话将 a 更改为 11,将 b 更改为 22?
我想知道是否有人知道 Array.find 是否会在找到第一个项目时使循环短路。我在谷歌上找不到任何东西。
有没有人做过 find 和 forEach 之间的任何性能比较?
javascript ×5
angular ×3
d3.js ×2
regex ×2
typescript ×2
css ×1
eslint ×1
gulp ×1
gulp-watch ×1
html ×1
ramda.js ×1
reactjs ×1
rxjs ×1
safari ×1