如何用 ESM 导入替换 <reference path/> 指令?
How to replace <reference path/> directive with ESM import?
我正在尝试编写一个 TypeScript 应用程序,但得出的结论是我不喜欢 <reference path />
三重斜杠指令。我发现使用 import 'something'
更合适。
但是当我尝试替换我的参考路径时,我不断收到模块未知的错误消息。
这是我的文件夹结构:
/app
/ViewModels
ApplicationViewModel.ts
app.ts
ApplicationViewModel.ts
module ApplicationVM {
export class ApplicationViewModel {
constructor(public test:string) {
}
}
}
app.ts
/// <reference path="ViewModels/ApplicationViewModel.ts" />
var a = new ApplicationVM.ApplicationViewModel('test');
这个很好用。如何让以下代码也能正常工作?
import * as App from 'noidea';
var a = new App.ApplicationViewModel('test');
对于 'noidea' 我试过:ViewModels/ApplicationViewModel
、ApplicationVM
asl。我什至将它与 <reference path />
结合使用,但它也没有帮助。
从ApplicationViewModel.ts中删除模块声明(如果使用外部模块,每个文件已经是一个模块):
export class ApplicationViewModel {
constructor(public test:string) {
}
}
然后在你的app.ts
import * as App from './ViewModels/ApplicationViewModel';
var a = new App.ApplicationViewModel('test');
你需要使用所谓的external modules:
ApplicationViewModel.ts
module ApplicationVM {
export class ApplicationViewModel {
constructor(public test:string) {
}
}
}
export = ApplicationVM;
app.ts
import { ApplicationViewModel } from "./ViewModels/ApplicationViewModel"
var a = new ApplicationViewModel('test');
我正在尝试编写一个 TypeScript 应用程序,但得出的结论是我不喜欢 <reference path />
三重斜杠指令。我发现使用 import 'something'
更合适。
但是当我尝试替换我的参考路径时,我不断收到模块未知的错误消息。
这是我的文件夹结构:
/app
/ViewModels
ApplicationViewModel.ts
app.ts
ApplicationViewModel.ts
module ApplicationVM {
export class ApplicationViewModel {
constructor(public test:string) {
}
}
}
app.ts
/// <reference path="ViewModels/ApplicationViewModel.ts" />
var a = new ApplicationVM.ApplicationViewModel('test');
这个很好用。如何让以下代码也能正常工作?
import * as App from 'noidea';
var a = new App.ApplicationViewModel('test');
对于 'noidea' 我试过:ViewModels/ApplicationViewModel
、ApplicationVM
asl。我什至将它与 <reference path />
结合使用,但它也没有帮助。
从ApplicationViewModel.ts中删除模块声明(如果使用外部模块,每个文件已经是一个模块):
export class ApplicationViewModel {
constructor(public test:string) {
}
}
然后在你的app.ts
import * as App from './ViewModels/ApplicationViewModel';
var a = new App.ApplicationViewModel('test');
你需要使用所谓的external modules:
ApplicationViewModel.ts
module ApplicationVM {
export class ApplicationViewModel {
constructor(public test:string) {
}
}
}
export = ApplicationVM;
app.ts
import { ApplicationViewModel } from "./ViewModels/ApplicationViewModel"
var a = new ApplicationViewModel('test');