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
文件。 但是,我的项目编译设置如下所示:
我究竟做错了什么? 这是杀了我。
models.d.ts
意味着在您的输出目录中已经存在一个models.js
。
如果不是这样的话,你应该使用.ts
文件。 换句话说,将其从models.d.ts
重命名为models.d.ts
。