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
over
require
,但在某些情况下,这会中断类型检查。处理这个问题的正确方法是什么?是否可以强制转换导入?不是所有的
都需要
替换为
导入

左:
属性“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;