打字稿:在编译的.js中需要定义文件中的类和接口

时间:2017-10-25 18:31:44

标签: node.js typescript visual-studio-2017 typescript-2.5

我有一个包含两个重要文件的Typescript项目:

app.ts
models.d.ts

app.ts的前几行看起来像这样:

///<reference path="models.d.ts"/>
'use strict';

import * as fs from 'async-file';
import { MyClass } from './models';

已编译 app.js的前几行是:

///<reference path="models.d.ts"/>
'use strict';
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
Object.defineProperty(exports, "__esModule", { value: true });
const fs = require("async-file");
const models_1 = require("./models"); //// ERROR THROWN HERE!!!!!!!!

但是,没有models.js生成,因为它只是一个.d.ts声明文件。因此,当我运行此命令并调用require以获取./models时,我会收到以下异常:

  

无法找到模块&#39; ./ models&#39;

Visual Studio Professional 2017 ,我没有tsconfig.json个文件。但是,我的项目编译设置如下所示:

CompilationSettings

我做错了什么?这让我很难过。

1 个答案:

答案 0 :(得分:1)

s2.bind(('localhost', port_in))表示输出目录中已存在models.d.ts

如果不是这样,您应该使用models.js文件。换句话说,将其从.ts重命名为models.d.ts