【问题标题】:TypeScript: Imported Module Not CompilingTypeScript:导入的模块未编译
【发布时间】:2016-04-01 01:40:10
【问题描述】:

所以我有一个导入本地 TypeScript 模块的简单 TypeScript 文件。当我编译它时,一切链接都很好,但是编译后的 JavaScript 文件正在尝试 require 我正在导入的 TypeScript 模块,而不是编译它。

这是我的文件布局示例:

module.ts

declare module "MyModule" {
  export var name: string;
}

test.ts

/// <reference path="../../src/module.ts"/>

import MyModule = require('MyModule');

var myName = MyModule.name;
myName = 'Nick';

console.log(myName);

我尝试像这样编译它:

ntsc mockup.ts 也尝试过(结果相同)ntsc mockup.ts --module commonjs

编译成这样:

test.js

/// <reference path="../../src/modern/needle.ts"/>
"use strict";
var MyModule = require('MyModule');
var myName = MyModule.name;
myName = 'Nick';
console.log(myName);

它也尝试编译module.ts,但来自它的文件是完全空的。谁能帮我弄清楚出了什么问题? var MyModule = require('MyModule'); 行显然不正确(文件因此而错误运行)。我怀疑我的模块文件可能有问题,特别是因为它没有正确编译。任何帮助将不胜感激。

【问题讨论】:

  • 您是要声明一个名为 MyModule 的现有非 TypeScript 模块,还是使用该名称编写您自己的模块?
  • @RyanCavanaugh 在这种情况下我正在尝试编写自己的模块

标签: javascript typescript


【解决方案1】:

您的文件布局应如下所示:

test.ts

import mod = require('./MyModule');

console.log(mod.name);

MyModule.ts

export var name = 'Hello, world!';

运行tsc --module commonjs test.ts编译,然后node test.js执行。

【讨论】:

  • 所以declare module "..." {} wrapper 不是要走的路吗?
  • 这与你想象的完全不同
【解决方案2】:

它也尝试编译module.ts,但来自它的文件是完全空的

因为module.ts 只有声明。声明只是对编译器的提示,不会发出任何实际的 JavaScript 代码。

【讨论】:

    猜你喜欢
    • 2021-07-24
    • 2016-10-22
    • 1970-01-01
    • 1970-01-01
    • 2014-03-31
    • 2023-01-14
    • 2019-09-04
    • 2013-02-22
    • 1970-01-01
    相关资源
    最近更新 更多