TypeScript 导入值与全局模块声明不冲突(回归?)

3hvapo4f  于 9个月前  发布在  TypeScript
关注(0)|答案(3)|浏览(89)

这是一个故意改变的行为吗?

TypeScript 版本: 3.4.0-dev.20190809
搜索词:
代码

  1. import assert from 'power-assert';
  2. declare global {
  3. const assert: typeof assert;
  4. }

预期行为:

循环引用错误。

实际行为:

没有错误。

Playground 链接:
相关问题:

okxuctiv

okxuctiv1#

之前发生了什么?

ac1kyiln

ac1kyiln2#

循环引用错误。因此,我必须避免冲突,如下所示:
https://github.com/falsandtru/spica/blob/v0.0.269/global.test.d.ts#L3
因此,以下代码可以正确地避免错误。

  1. import assert from 'power-assert';
  2. declare const assert: typeof assert;

全局模块声明省略此错误。

2w3rbyxf

2w3rbyxf3#

我们可以看到VSCode很混乱:转到定义命令将我们从typeof assert带到const assert,在全局模块声明中,但其实际定义是在另一个模块(文件)中定义的。

相关问题