【问题标题】:How to import in Typescript without module declaration如何在没有模块声明的情况下在 Typescript 中导入
【发布时间】:2015-12-17 01:47:43
【问题描述】:

我有一堆自动生成的模块需要从我的打字稿文件中引用。

例如

导入测试 = 要求('../templates/test')

我正在生成带有 ES5 输出的 CommonJS 模块。 所以我不能使用amd-dependency(因为它只适用于amd模块)。 而且我也不能手动声明模块,因为 1. 它是自动生成的,2. 它有一个相对路径。

Typescript 1.6 当前显示一个错误,提示“找不到模块”。我如何让它抑制这个错误并导入?

【问题讨论】:

  • 似乎是一个路径问题。如果没有,您能否提供一个来自自动生成的模块的简短示例,并提及它们保存的与使用它们的文件相关的路径?
  • 这不是路径问题。正如我所描述的,问题只是没有为上述模块声明一个'typescript'模块,这很明显,因为它是自动生成的。该问题询问如何抑制没有打字稿定义的模块的打字稿错误。

标签: javascript typescript ecmascript-6 commonjs typescript1.6


【解决方案1】:

如何让它抑制这个错误并导入

如果您确定require 语句是有效 并且想要在导入时关闭任何类型检查,您可以使用node.d.ts 并执行:

var test = require('../templates/test')

即。只需使用var 而不是import

【讨论】:

  • 向您的方向发送代码爱。我为此苦苦挣扎了一段时间
【解决方案2】:

如果你想使用 TypeScript 导入(只是 ES6 导入),你可以使用这个:

import * as test from '../templates/test';

然后像这样调用你的 API:

let foo = test.MY_API;

【讨论】:

    猜你喜欢
    • 2017-03-13
    • 2018-11-10
    • 2017-02-12
    • 2012-12-07
    • 2021-04-22
    • 2021-11-04
    • 2017-11-05
    • 2018-10-14
    • 2021-05-21
    相关资源
    最近更新 更多