【问题标题】:Why is typescript failing to import a module?为什么打字稿无法导入模块?
【发布时间】:2016-05-21 04:43:12
【问题描述】:

Typescript 无法导入 js-yaml 包。对我来说,实际上有更多的包会发生这种情况,但这是重现问题的简单方法。

在新目录中,键入:

npm install js-yaml

然后在同一目录中添加以下 ts 文件:

import * as y from 'js-yaml';
console.log(y);

当我使用这个命令编译时:

$ tsc --version
message TS6029: Version 1.7.5
$ tsc --module commonjs file.ts 
file.ts(2,20): error TS2307: Cannot find module 'js-yaml'.

如果我将导入样式更改为 commonjs,如下所示:

declare var require: any;  // need to declare require, or else tsc complains
let y = require('js-yaml');
console.log(y);

一切顺利编译。此外,我看到即使 tsc 编译失败,它也会输出一个文件。在这个文件中,有与正确编译的版本完全相同的require 调用:

var y = require('js-yaml');
console.log(y);

这是一个错误,还是我在做一些愚蠢的事情?

【问题讨论】:

    标签: node.js typescript typescript1.7


    【解决方案1】:

    我真傻。在Typescript gitter room 的帮助下,我意识到我错过了打字文件。所以,我运行了这个:

    tsd install js-yaml
    

    然后在ts文件顶部添加typings引用,像这样:

    /// <reference path="./typings/js-yaml/js-yaml.d.ts"/>
    import * as y from 'js-yaml';
    console.log(y);
    

    编译成功了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-28
      • 1970-01-01
      • 2017-10-29
      • 1970-01-01
      • 2021-08-31
      • 2019-09-30
      • 2022-01-14
      相关资源
      最近更新 更多