处理现有的打字稿项目。 VS代码。
在服务器目录中创建一个新文件,并获得唯一错误仅在该文件上
此:
let path = require('path')
给我ole:
Cannot redeclare block-scoped variable 'path'.
这没关系:
import * as path from "path"
很有趣,这个
let fs = require('fs')
本身也会产生相同的错误,
但是,如果我在上面加上了import * as path from "path"
,那么该错误就会消失而不会触碰它!内部节点模块的处理方式有所不同!
在同一项目中的许多其他文件中,
let fs = require('fs')
给出完全没有错误
打字稿怎么回事?
2.5年前,我遇到了类似的问题,而且TS仍然是配置BS的神秘盒子,现在VSC使它变得更加不透明。
cannot redeclare block scoped variable (typescript)
此文件正常!
但是在另一个文件中,完全相同的代码有一些小麻烦!
但是这种神奇的组合还可以:
答案 0 :(得分:0)
请勿使用require
,而应使用import
。
原因是require
特定于node
,其中其他import
语句根据目标转换为require
或define
。
因此,当通过import
导入模块时,TS编译器知道如何导入以及如何导入。通过require
方法导入时,所有内容均全局包含在打字稿中。因此是错误。