小编tec*_*000的帖子

TypeScript 条件类型抱怨类型不可分配

我试图了解 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)

正确的用法是什么?

在此处输入图片说明

在此处输入图片说明

typescript

13
推荐指数
3
解决办法
1668
查看次数

Angular 2 typescript d3类型问题:'[number,number]'类型中不存在属性'x'

我正在用d3生成折线图.它工作,但打字稿代码抱怨在一个不存在的属性

类型'[number,number]'上不存在属性'x'

在此输入图像描述

看着错误.看起来预期的数据点是一个带有两个数字的数组.

但我正在传递一个对象.D3应该支持我认为.

有谁知道如何摆脱这个错误而不改变我的数据?

d3.js typescript angular

11
推荐指数
2
解决办法
5730
查看次数

从'rxjs/Observable'导入{Observable}和从'rxjs'导入{Observable}之间有什么区别吗?

在角度2中使用rxjs时,import { Observable } from 'rxjs/Observable' 和 之间有什么区别 import { Observable } from 'rxjs'吗?

rxjs angular

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

更改检测问题 - 为什么当它与On Push相同的对象引用时会发生变化

我认为在讨论之后我非常清楚角度变化检测是如何工作的:为什么当[值]改变时,变化检测不会发生在这里?

但看看这个插件: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,为什么会更改?

angular

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

适用于Chrome,但在Safari中断:无效的正则表达式:无效的组说明符名称/(?<=\/)([^#] +)(?=#*)/

在我的Javascript代码中,这个正则表达式/(?<=\/)([^#]+)(?=#*)/在Chrome中运行良好,但在safari中,我得到:

无效的正则表达式:无效的组说明符名称

有任何想法吗?

javascript regex safari

7
推荐指数
3
解决办法
4249
查看次数

使用正则表达式查找Javascript中两个字符串之间的差异

正则表达专家请帮助看看这个问题是否可以通过正则表达式解决:

给定字符串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)

javascript regex

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

如何在修复文件时连续自动运行gulp eslint - 如何设置手表

我正在和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 …

javascript eslint gulp gulp-watch

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

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

为什么垂直滚动条总是可见

这是我的 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)

当您将鼠标悬停在其中一个圆圈上时,即使高度足以容纳内容,也始终可以看到带有垂直滚动条的工具提示。为什么垂直滚动始终可见。我如何让它仅在内容实际溢出时才显示?

html javascript css d3.js

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

如何使用 ramdajs 同时更改多个值

我是 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?

ramda.js

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

Array.find 与 Array.forEach 的性能对比

我想知道是否有人知道 Array.find 是否会在找到第一个项目时使循环短路。我在谷歌上找不到任何东西。

有没有人做过 find 和 forEach 之间的任何性能比较?

javascript

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

标签 统计

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