首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeScript /模块/类的导入和导出-运行导入类时的运行时错误

TypeScript /模块/类的导入和导出-运行导入类时的运行时错误
EN

Stack Overflow用户
提问于 2012-10-24 17:38:44
回答 2查看 1.6K关注 0票数 1

我在用TypeScript。

我有内部文件String.ts如下:

代码语言:javascript
复制
module Sgc.Sys {
    "use strict";
    export class String {       
        static trim(input: string): string {
            return input.replace(/^\s+|\s+$/g, "");
        };
//-- other methods below ...
    }
}

然后,在文件Number.ts (位于String.ts的同一文件夹中)中,我使用了上面定义的方法Sgc.Sys.String.trim():

代码语言:javascript
复制
module Sgc.Sys {
    "use strict";
    export class Number {

    static someMethod(input : string) : string {
            //-- some code
            var str = Sgc.Sys.String.trim(input);
            return str;

        };
    }
}

问题:必须像上面一样定义/调用Sgc.Sys.String的方法trim才能被TypeScript接受,但在运行时Sgc.Sys.String是未定义的,因此Sgs.Sys.String.trim(输入)会触发异常。

当Sgc.Sys.String.trim和Number.ts都在一个文件夹..\Sgc\Sys中时,如何从String.ts内部调用..\Sgc\Sys?

谢谢你,MG

EN

回答 2

Stack Overflow用户

发布于 2012-10-24 19:57:32

必须添加对Number.ts文件的引用:

代码语言:javascript
复制
/// <reference path="String.ts" />
票数 2
EN

Stack Overflow用户

发布于 2012-10-24 21:58:52

如果在运行时获得错误,则需要确保在页面中包含两个已编译的JavaScript文件。

根据您的代码示例,我假设您没有使用模块加载。

代码语言:javascript
复制
<script src="/Sgc/Sys/String.js"></script>
<script src="/Sgc/Sys/Number.js"></script>

额外的笔记..。

默认情况下,TypeScript的目标是ECMAScript 3,因此“使用严格”状态不会产生任何效果--您需要针对此特性的ECMAScript 5。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13054693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档