Javascript TypeScript经常出现问题,更喜欢导入而不是要求
只要可能,我会尝试使用Javascript TypeScript经常出现问题,更喜欢导入而不是要求,javascript,node.js,typescript,Javascript,Node.js,Typescript,只要可能,我会尝试使用importoverrequire,但在某些情况下,这会中断类型检查。处理这个问题的正确方法是什么?是否可以强制转换导入?不是所有的都需要替换为导入 左:属性“get”不存在… 右:从“罪犯”导入*为罪犯而不是要求(“罪犯”) 左: 对: //let convict = require("convict"); import * as convict from "convict"; const config = convict({ "env": {
import
overrequire
,但在某些情况下,这会中断类型检查。处理这个问题的正确方法是什么?是否可以强制转换导入?不是所有的都需要替换为导入
左:属性“get”不存在…
右:从“罪犯”导入*为罪犯代码>而不是要求(“罪犯”)代码>
左:
对:
//let convict = require("convict");
import * as convict from "convict";
const config = convict({
"env": {
"doc": "The application environment.",
"format": ["production", "development", "test"],
"default": "development",
"env": "NODE_ENV"
},
...
module.exports = config;
不幸的是,这是您的一个依赖项,confirin
的键入问题。查看@types/confirm
来源:
他们使用export=…
导出定义,根据Typescript手册:
(请参阅“export=
和import=require()
”标题)
从…中断import*
imports。所以,您在这一点上有点卡住了。以文本形式发布代码。不是作为图像。添加了代码以补充图像。因此,如果我有雄心壮志,我可以去更新罪犯的.d.ts文件来解决问题吗?或者我真的需要破解他们的密码?是的!这只存在于打字中,因此如果您需要,您可以针对DefinitelyTyped回购提交拉取请求,并为每个人修复它!我使用的是TS 2.5.2,并通过将TS更新到最新版本修复了此问题。希望这能帮助别人。
//let convict = require("convict");
import * as convict from "convict";
const config = convict({
"env": {
"doc": "The application environment.",
"format": ["production", "development", "test"],
"default": "development",
"env": "NODE_ENV"
},
...
module.exports = config;