小编Kom*_*nos的帖子

打字稿泛型参数比较

所以在 Typescript 的泛型指南的末尾有这段代码

class BeeKeeper {
    hasMask: boolean = true;
}

class ZooKeeper {
    nametag: string = 'abc';
}

class Animal {
    numLegs: number = 123;
}

class Bee extends Animal {
    keeper: BeeKeeper = new BeeKeeper();
}

class Lion extends Animal {
    keeper: ZooKeeper = new ZooKeeper();
}

function createInstance<A extends Animal>(c: new () => A): A {
    return new c();
}

createInstance(Lion).keeper.nametag;  // typechecks!
createInstance(Bee).keeper.hasMask;   // typechecks!
Run Code Online (Sandbox Code Playgroud)

这个程序只是创建一些类,然后定义一个方法来创建给定类的实例。但是,当我们尝试与变量进行比较时,就会出现问题c。例如,如果我们想检查c == LionTypescript是否抛出错误(playground link …

typescript

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

当 CSS3 动画的 display 属性设置为 none 时,它​​是否仍然运行?

我有一个进度条,我在页面加载时使用 CSS 为其设置动画。页面加载完成后,我将进度条的display属性设置为none使用 Javascript,因此将显示页面内容。display问题是:当动画的属性设置为 时,动画是否仍会在后台运行none

css

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

VSCode 调试器不会在 Typescript 断点处停止

我有一个带有 2 个模块(包)的 Lerna monorepo:pscli.

ps只是导出一个导入whatever的函数cli

然而,当我尝试使用 VSCode 调试此代码时,我的断点停止在生成的 Javascript 文件上,而不是我的源 Typescript 文件上。

在此输入图像描述

这已经困扰了我几个小时,我已经广泛地使用了我的tsconfig.jsonlaunch.json使用vscode-pwa-analyzer来查看 VSCode 能够检测我的源 TS 代码,但我无法找到修复方法。

编辑:我使用以下设置: macOS Big Sur v11.1 Node.js v14.8.0 Typescript v4.1.3

我上面的调试的转储文件,您可以加载到vscode-pwa-analyzer在此输入图像描述 我可以在这里看到一些未绑定断点错误。

javascript source-maps typescript visual-studio-code vscode-debugger

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

Typescript无法检测到方法更改的属性

所以我有以下代码:

class A {
  constructor(private num: number = 1) {

  }

  private changeNum() {
    this.num = Math.random();
  }

  private fn() {
    if(this.num == 1) {
      this.changeNum();
      if(this.num == 0.5) {
        // do stuff
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

它是一个类,具有一个属性num和一个changeNum更改该数字的函数。

然后,它也有另一种功能fn,其首先检查是否num等于1,如果是,改变了num通过changeNum并再次检查它。

问题是Typescript无法检测到num被更改,changeNum并引发以下错误:

This condition will always return 'false' since the types '1' and '0.5' have no overlap.

有没有一种方法可以使Typescript识别出num已更改的内容changeNum

编辑:我发现的一件事是,更改if(this.num == 0.5)if(this.num …

typescript

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