gpt4 book ai didi

javascript - 无法从 TypeScript 中的模块/命名空间导出/导入类

转载 作者:行者123 更新时间:2023-11-30 21:10:38 24 4
gpt4 key购买 nike

我正在玩转 TypeScript 和导出/导入。

我只是想拥有一个类似于 C# 的文件结构。我想嵌套一个仅包含一些常量字符串属性的辅助类。这是文件 ~/Scripts/Helper/UrlHelper.ts 的样子:

module Helper.UrlHelper {
abstract class Controller {
protected static readonly controllerName: string;
}

export abstract class Account extends Controller {
static controllerName: string = "Account";

static readonly loginGet: string = [Account.controllerName, "Login"].join("/");
static readonly loginPost: string = [Account.controllerName, "Login"].join("/");
}
}

我的目标是使用值,例如Helper.UrlHelper.Account.loginPost。但我没有让导入/导出工作。

我最后一次尝试是添加 export * from "./Helper/UrlHelper" 并使用 import import {Account} from "../Helper/UrlHelper";

这会导致错误:

Module '".../Scripts/Helper/UrlHelper"' has no exported member 'Account'

我几乎尝试了 here 中的所有内容,但没有任何效果。我做错了什么?

最佳答案

不要使用关键字module,只需导出您需要在其他地方导入的成员:

// Helper/UrlHelper.ts
abstract class Controller {
protected static readonly controllerName: string;
}

export abstract class Account extends Controller {
static controllerName: string = "Account";

static readonly loginGet: string = [Account.controllerName, "Login"].join("/");
static readonly loginPost: string = [Account.controllerName, "Login"].join("/");
}

然后,可以导入导出的成员Account:

// other-directory/other-file.ts
import { Account } from "../Helper/UrlHelper"

关于模块的文档在这里:

您也可以使用命名空间,但它不是 ES6 标准。如果你真的想要命名空间,这里是文档:

另见:

关于javascript - 无法从 TypeScript 中的模块/命名空间导出/导入类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46179178/

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