gpt4 book ai didi

typescript - 导入 TypeScript 命名空间(如在 C#/.NET 中)

转载 作者:行者123 更新时间:2023-12-04 16:57:31 25 4
gpt4 key购买 nike

在我的 TypeScript 项目中,我使用分布在多个命名空间结构的文件中的类和接口(interface)。就像我在 C#/.NET 中使用的那样。

IDispatcher.ts :

namespace Dispatcher {
export interface IDispatcher {
Dispatch(msg: string): Promise<string>;
}
}

DispatcherImpl.ts :
namespace Dispatcher {
export class Dispatcher implements Dispatcher.IDispatcher {
Dispatch(msg: string): Promise<string> {
return new Promise<string>((resolve, reject) => {
resolve('result');
});
}
}
}

测试.ts :
namespace Test {
export class Test {
private dispatcher: Dispatcher.IDispatcher;

constructor() {
this.dispatcher = new Dispatcher.Dispatcher();
}
}
}

let testRun = new Test.Test();

一切都可以很好地编译为 JavaScript(使用 targetmodule = es6)。但是当我运行时 node test.js我收到了 错误
this.dispatcher = new Dispatcher.Dispatcher();
^
ReferenceError: Dispatcher is not defined

当我尝试 import DispatcherImpl它指出 File 'DispatcherImpl.ts' is not a module .并与 require('DispatcherImpl.ts')它只是解析为 any并且也不能按预期工作。

所以我希望 TypeScript 命名空间的行为类似于 .NET 命名空间。但似乎完全不是这样。
如何安排我的接口(interface)和类的正确方法以及其他类如何使用/导入它们?也许有一种方法可以让 TypeScript 编译器自动解析命名空间?

最佳答案

Currently没有include奥德 import TypeScript 中命名空间的语句。

我找到了使用 outFile 的解决方法tsconfig.json 中的选项:

"outFile": "test.js"

这样所有的 TypeScript 代码都会被翻译成一个单一的 JavaScript 文件。要按正确的顺序排列,每个 TypeScript 文件都必须定义它的依赖项,例如
/// <reference path="DataModel/Common.ts" />

关于typescript - 导入 TypeScript 命名空间(如在 C#/.NET 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38911988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com