Typewriter生成的TS文件不是模块

2024-02-21

我使用 Visual Studio 中的 Typewriter 扩展来生成模型 (Account.ts),但是当我尝试在另一个类中导入模型时,它失败了。我究竟做错了什么?

import { Account } from '../../models/greencard/Account';

Error

'C:/Users/me/Desktop/_REPOS/stuff/ClientApp/src/app/models/greencard/Account.ts' is not a module.   

打字机文件

${
    // Enable extension methods by adding using Typewriter.Extensions.*
    using Typewriter.Extensions.Types;

    // Uncomment the constructor to change template settings.
    //Template(Settings settings)
    //{
    //    settings.IncludeProject("Project.Name");
    //    settings.OutputExtension = ".tsx";
    //}

    // Custom extension methods can be used in the template by adding a $ prefix e.g. $LoudName
    string LoudName(Property property)
    {
        return property.Name.ToUpperInvariant();
    }
}
module InvWebOps.EFModels.TypewriterTSTFiles {

templates e.g. $Properties[public $name: $Type][, ]

    // More info: http://frhagn.github.io/Typewriter/

$Classes(Account)[
    export class $Name {
        $Properties[
        // $LoudName
        public $name: $Type = $Type[$Default];]
    }]
}

自动生成的 Account.ts

module InvWebOps.EFModels.TypewriterTSTFiles {

    // More info: http://frhagn.github.io/Typewriter/


    export class Account {

        // ID
        public id: number = 0;
     ......

简答

您可以访问Account在其他文件中的类使用它的命名空间 https://www.typescriptlang.org/docs/handbook/namespaces.html.

namespace InvWebOps.EFModels.TypewriterTSTFiles {
    const account = new Account();
}

// the deprecated `module` keyword also works
module InvWebOps.EFModels.TypewriterTSTFiles {
    const account = new Account();
}

// a fully qualified name also works
const account = new InvWebOps.EFModels.TypewriterTSTFiles.Account();

更多细节

我究竟做错了什么?

关键词module 已被弃用,取而代之的是 https://www.typescriptlang.org/docs/handbook/namespaces-and-modules.html namespace。这两个关键字的含义相同,但第二个关键字不那么令人困惑。 TypeScript 官方文档对于命名空间是这样说的:

命名空间只是全局命名空间中命名的 JavaScript 对象。这使得命名空间成为一个非常简单的使用结构。它们可以跨越多个文件...[并且]...可以是在 Web 应用程序中构建代码的好方法...

生成的Account代码做了两件事:

  1. 添加了InvWebOps.EFModels.TypewriterTSTFiles命名空间到全局范围。
  2. 出口一个Account来自该命名空间的类。

从命名空间导出的任何内容都只能从该命名空间内访问。因此,每当一行代码需要访问Account类,该行代码需要使用Account类的命名空间。简短的回答显示了三种方法来做到这一点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Typewriter生成的TS文件不是模块 的相关文章

随机推荐

  • 对 JSONP 请求的工作原理感到困惑

    我无法理解 jsonp 请求如何工作的细节 我已经阅读了包括 jsonp 上的 wiki 在内的多个资料来源 但对于在进行 jsonp 调用时回调实际上如何获取从服务器返回的函数仍然非常困惑 例如 在wiki中 请求的来源设置为 src h
  • 在不使用 GIT 的情况下将 WAR 文件部署到 Openshift?

    我想将 WAR 文件上传到我的开放式换档帐户 但这迫使我 使用 GIT 或 GITHUB here https www openshift com kb kb e1088 how to deploy pre compiled java ap
  • 从服务器获取数据时 Android 中的列表视图

    我正在尝试将数据异步填充到列表视图中 我正在从服务器检索数据作为 JSON 响应 MainActivity java public class MainActivity extends Activity url to make reques
  • Availability.h 类宏

    是否可以有一个自定义可用性宏 例如 OSX AVAILABLE STARTING 我需要它以同样的方式执行 我只需要更改它的名称以及参数的版本和数量 是的 当然了 Objective C 是 C 的严格超集 因此 C 宏非常适合您使用 并且
  • 如何预测 merMod 对象(lme4)的术语?

    对于简单的glm对象 我可以使用predict fit type terms 检索包含每个项的拟合值的矩阵 相当于什么lmer resp glmer适配型号 据我所知 predict merMod功能不支持type terms 相当于什么l
  • 如何为 Outlook 创建“Internet 日历订阅”?

    目前 用户添加了一个 新的互联网日历 但它是 ICS 文件的一次性下载 我希望用户单击一个按钮即可将其个人日历添加为 Outlook 订阅 我想要自动更新 互联网日历订阅 http office microsoft com en us ou
  • VBA-获取所有文件属性

    我想获取文件夹中所有文件的属性 我已经将其用于固定数量的属性 我唯一关心的是找到最后一个属性的索引 用于GetDetailsOf方法 以便我可以列出所有属性 下面的函数返回属性计数 但不正确 因为它基于最后一个非空属性名称 然而 有一些索引
  • TinyMCE 编辑器中的换行符在预览中显示额外的行,而不是在代码中

    我将 BBCode 插件与 TinyMCE 结合使用 发现预览和 HTML 代码之间的换行符显示不一样 我在编辑器窗口中有以下几行 This is line one This is line three 第二行是空的 当我在 HTML 中查
  • Flutter Web 调试正常,但构建 Web 显示空白页面

    flutter doctor result Flutter Channel dev 1 21 0 1 0 pre on Microsoft Windows Version 10 0 19041 388 locale en US Androi
  • APK Openssl 版本

    我很困惑 我最近创建了 Google Play 应用程序 但几个小时后 我在控制台中收到消息 指出我使用了错误的 OpenSSL 版本 解压缩 p YourApp apk 字符串 grep OpenSSL gives OpenSSL 1 0
  • 如何使用 cygwin 排序对第 n 列上的制表符分隔文件进行排序?

    我有一个巨大的制表符分隔文件 我想在其第二列上进行排序 我需要使用制表符作为 cygwin 排序中的字段分隔符 所以我需要这样的东西 sort t t k 2 2 in txt gt out txt 但命令提示符按字面意思计算 t 而不是作
  • Storm 和 Spring 4 集成

    我有一个 Storm 应用程序原型 它读取 STOMP 流并将输出存储在 HBase 上 它可以工作 但不是很灵活 我正在尝试以与我们其他应用程序更一致的方式设置它 但不太幸运地弄清楚当前与 Storm 的工作方式 我们使用 spring
  • 如何在 Forth 中比较两个字符串?

    我可以在if声明还是我应该创建一个辅助布尔变量 这是我到目前为止的代码 顺便一提 IOX 是从用户那里获取输入 var compile VARIABLE complile lock compile var realPass compile
  • 如何更改ggplot2中图例文本的大小?

    我使用下面的数据和代码得到了这个图 我希望能够更改图例文本的大小 A B M1 M3 我尝试使用 legend text element text size 0 5 但它没有改变 有什么建议如何减小 legend text 的大小吗 Cod
  • 解决“只能在类中初始化静态常量整型数据成员”编译错误

    以下创建全局对象会导致编译错误 include stdafx h include
  • 混合单独编译的对象

    让我来上课吧class Drawable 它可以有许多成员 成员函数 父类 也可以非常简单 对于这个例子来说 这并不重要 另外 假设它是某种 GUI 元素 然后 假设我有一个渲染引擎 它作为 GCC 库提供engine a 该库包含clas
  • Laravel 5.0.* 中间件在处理路由之前从 url 中删除前缀区域设置

    我正在寻找一种方法 使所有应用程序路由都具有多个区域设置 而不使用路由组 这是因为我使用了外部扩展包 这意味着路由在很多地方注册 本质上我想让 foo bar 以及 en foo bar de foo bar es foo bar 等都被
  • 查找 int 数组中的第一个重复项,java

    这是我遇到的一个常见面试问题 但我未能按照其要求的方式改进它 assume we have an int array int A we want to find the first duplicate entry 几乎每个人都会想到使用Ha
  • 二级索引在 Cassandra 中如何工作?

    假设我有一个列族 CREATE TABLE update audit scopeid bigint formid bigint time timestamp record link id bigint ipaddress text user
  • Typewriter生成的TS文件不是模块

    我使用 Visual Studio 中的 Typewriter 扩展来生成模型 Account ts 但是当我尝试在另一个类中导入模型时 它失败了 我究竟做错了什么 import Account from models greencard