Typescript:定义文件中的类和接口在编译的.js文件中被需要

我有一个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 ,我得到以下exception:

找不到模块'./models'

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

CompilationSettings

我究竟做错了什么? 这是杀了我。

models.d.ts意味着在您的输出目录中已经存在一个models.js

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