导入声明的TypeScript问题

uks*_*ksz 13 typescript

我从扩展文件导入声明时遇到问题(我正在使用类型).根据示例,我应该将其放入我的代码中:

import * as SockJS from 'sockjs-client';
import BaseEvent = __SockJSClient.BaseEvent;
import SockJSClass = __SockJSClient.SockJSClass;
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试按以下方式执行此操作时:

module Test {
    import * as SockJS from 'sockjs-client';
    import BaseEvent = __SockJSClient.BaseEvent;
    import SockJSClass = __SockJSClient.SockJSClass;

    export class Example {
        constructor() {......
}}}
Run Code Online (Sandbox Code Playgroud)

我从编译器得到以下错误:

error TS1147: Import declarations in a namespace cannot reference a module.
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?或者打字本身有什么问题吗?

谢谢
uksz

And*_*vic 11

您应该在模块外部使用import语句

import * as SockJS from 'sockjs-client';
import BaseEvent = __SockJSClient.BaseEvent;
import SockJSClass = __SockJSClient.SockJSClass;

module Test {
    export class Example {
        constructor(){}
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 一旦我把它放在我的命名空间之外,其他一切都开始破坏了.我想这会导致我的代码被注册为外部模块,然后它再也看不到其他第三方库了.有什么我可以做的来解决这个问题吗?谢谢 (12认同)

Bjø*_*sen 2

我相信这是由于打字稿模块选项的混合造成的。

您的类使用内部模块,而键入文件使用外部模块。请参阅此处的“使用其他 JavaScript 库”部分:http ://www.typescriptlang.org/docs/handbook/modules.html

  • 您有任何解决办法吗? (6认同)