找不到名称“模块”

Posted

技术标签:

【中文标题】找不到名称“模块”【英文标题】:cannot find the name "module" 【发布时间】:2017-01-19 04:17:07 【问题描述】:

我正在尝试运行一个简单的打字稿文件,我正在导出一个名为 sum 的函数,如下所示:

我正在编写节点脚本。

function sum(a:number):number
  return a;

module.exports.sum=sum;

我不明白我做错了什么。

我写了这个简单的脚本来理解单元测试用例。我想如果这个文件运行正常,那么我会去使用 mocha 和 chai 开始基本的测试用例。

下面是我的测试代码:

"use strict"

// Import chai.
let chai = require('chai'),
    path = require('path');

chai.should();

let SampleTest = require(path.join(__dirname, '..', 'sample.js'));

describe('Sampletesting', () => 
    describe('function sum', function()
        it('should return number', function()
            sum(1).should.equal(1);
        )
    )
);

【问题讨论】:

能否请您补充一下您是如何从外部导入的? @Manu 请在我用 mocha 和 chai 进行简单测试的地方找到我的更新代码 【参考方案1】:

这种代码的平静对我来说很好用;

假设我们有一个名为 math_utils.ts 的模块,它导出一个名为 foo 的函数和一个名为 obj 的对象

 // typescript syntax for exporting 
 export function foo(a: number): number 
    // whatever
 

 export const obj =  life: 42 

 const _aPrivateObjectToTheModule = 

 function _aPrivateFunctionToTheModule() 

现在我们在同一个文件夹中定义另一个文件,例如math_utils.spec.ts,它将导入我们的模块。

import  should  from 'chai'
import  foo  from './math_utils'
// now we are able to call math_utils.foo()

describe('foo', () => 
    it('should....', () => 
        foo(1).should.equal(1);
    )
)

现在,总结一下,在 typescript 中,您可以通过这种方式导入模块成员...或导入整个模块,如下所示:

import * as chai from 'chai'
import * as MathUtils from './math_utils' 
// now in an object called MathUtils we have every member defined with the keyword export
const should = chai.should

describe('foo', () => 
    it('should....', () => 
        MathUtils.foo(1).should.equal(1);
    )
)
describe('obj', ()=> 
   // ...
   MathUtils.obj
)

【讨论】:

这里在 import * as MathUtils from './math_utils' "MathUtils" 指的是什么? 还有一件事我已经破解了为什么你在那里使用 MathUtils 但是当我运行我的测试时我收到另一个错误为“意外保留字”并且它指向“导入” 似乎与您的配置有关...可能您忘记了与编译器选项有关的东西?我使用 Visual Code(免费的),我总是需要一个名为 tsconfig.json 在项目根目录中的文件。 Visual Code reference

以上是关于找不到名称“模块”的主要内容,如果未能解决你的问题,请参考以下文章

找不到名称“模块”

django wsgi 错误找不到名为站点名称的模块

易语言的错误怎么办错误(36): 找不到指定的对象成员命令名称“创建内存”

易语言问题 错误(36): 找不到指定的对象成员命令名称“取文本长度”。

Angular2 代码中的 TypeScript 错误:找不到名称“模块”

找不到模块“模块名称”的声明文件。 '/path/to/module-name.js' 隐含一个 'any' 类型