【问题标题】:Is there a way to use --esModuleInterop in tsconfig as opposed to it being a flag?有没有办法在 tsconfig 中使用 --esModuleInterop 而不是作为标志?
【发布时间】:2018-07-24 22:10:08
【问题描述】:

Typescript v 2.7 发布了名为 --esModuleInterop https://www.typescriptlang.org/docs/handbook/compiler-options.html 的非常简洁的标志,我试图弄清楚是否有办法将它与 tsconfig.json 一起使用,因为目前似乎没有记录:http://www.typescriptlang.org/docs/handbook/tsconfig-json.html

除非它以某种方式与module?一起工作

我想要实现的主要用例是能够导入这样的东西

import React from "react"

相对于

import * as React from "react"

如果可能的话,从我的 tsconfig 中这样做

【问题讨论】:

    标签: typescript


    【解决方案1】:

    是的,在您的 tsconfig.json 中执行 "esModuleInterop": true。对于可以传递给 CLI 的每个标志选项,通常可以在配置文件中以这种方式完成。在命令行上执行tsc --init 会生成一个充满 cmets 的 tsconfig,解释所有可用选项。


    编辑:我了解到esModuleInterop 的行为取决于设置为module 的内容。

    如果您有"module": "commonjs",则只需启用"esModuleInterop": true即可。

    如果您有"module": "es2015""module": "esnext",您还必须启用"allowSyntheticDefaultImports": true 才能默认导入CommonJS 模块(如React)。

    【讨论】:

    • 结合使用"module: "es7""moduleResolution": "node" 对我有用。 @types/react 存在问题,但尚未为此更新。
    【解决方案2】:

    我也遇到了同样的问题,

    • 此问题特定于 typescript 版本
    • 执行以下步骤将其删除(对我有用)
    1. 在您的项目中,在 package.json 文件中 - 验证您在依赖项下是否有 typescript 开发依赖{ “打字稿”:“^2.5.2” }
    2. 通过在终端输入 tsc -version 命令检查系统上已安装的 typescript 版本
    • 这将在全局级别显示已安装的 typescript 版本
    • o/p 版本 - 2.9.1
    1. 使用系统上安装的版本更改版本号内部 package.json 文件。

    开发依赖项{ “打字稿”:“^2.9.1” }

    希望这会成功!!!!!!!!!!!!

    【讨论】:

    • 谢谢!这就是问题所在。 npm i typescript --save 为我工作
    猜你喜欢
    • 2019-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-27
    • 2019-10-07
    • 1970-01-01
    • 2021-07-02
    • 1970-01-01
    相关资源
    最近更新 更多