相关疑难解决方法(0)

Typescript es6导入模块"文件不是模块错误"

我正在使用带有es6模块语法的typescript 1.6.

我的文件是:

test.ts:

module App {
  export class SomeClass {
    getName(): string {
      return 'name';
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

main.ts:

import App from './test';

var a = new App.SomeClass();
Run Code Online (Sandbox Code Playgroud)

当我尝试编译该main.ts文件时,我收到此错误:

错误TS2306:文件'test.ts'不是模块.

我怎么能做到这一点?

javascript typescript ecmascript-6

101
推荐指数
4
解决办法
11万
查看次数

用于导入commonjs/amd模块的新es6语法,即`import foo = require('foo')`

以前我可以这样做:

import foo = require('foo');
Run Code Online (Sandbox Code Playgroud)

但是现在TypeScript(1.5)支持es6模块语法,在ES6模块语法中实现相同的正确方法是什么.

javascript typescript ecmascript-6

54
推荐指数
3
解决办法
5万
查看次数

如何在TypeScript中使用RequestPromise?

我已经安装了request-promise库并尝试在我的TypeScript应用程序中使用它,但没有太多运气.

如果我像这样使用它:

import {RequestPromise} from'request-promise';

RequestPromise('http://www.google.com')
        .then(function (htmlString) {
            // Process html...
        })
        .catch(function (err) {
            // Crawling failed...
        });
Run Code Online (Sandbox Code Playgroud)

我在TS编译输出上看到了这个:

error TS2304: Cannot find name 'RequestPromise'.
Run Code Online (Sandbox Code Playgroud)

如果我这样使用它:

import * as rp from'request-promise';

rp('http://www.google.com')
    .then(function (htmlString) {
        // Process html...
    })
    .catch(function (err) {
        // Crawling failed...
    });
Run Code Online (Sandbox Code Playgroud)

我看到一个错误,表示对象rp上没有'.then()'方法.

如何在TypeScript中正确使用它?

javascript typescript

16
推荐指数
2
解决办法
9847
查看次数

导入http = require('http'); 并从'http'导入*作为http;?

我一直没能找到一个带有Typescript教程的有价值的NodeJS,所以我在没有指导的情况下潜水,当然我有一个问题.

我不明白这两行之间的区别:

import * as http from 'http';
// and
import http = require('http');
Run Code Online (Sandbox Code Playgroud)

他们似乎以相同的方式运作,但我想他们的行为可能有一些细微差别,否则其中一个可能不存在.

我确实理解第一种方法可以让我有选择地从一个模块导入,但如果我导入所有模块,那么两者之间有区别吗?有首选方式吗?如果我从我自己的文件导入,这会改变什么呢?

node.js typescript

12
推荐指数
2
解决办法
2万
查看次数

如何将 ES6 导入与“请求”npm 模块一起使用

在 ES6-ifying 一些 TypeScript 代码(我正在工作的项目在浏览器和 Node 服务器中运行,我想摇动浏览器包),我试图消除使用require并且只使用import. 但是当我这样做时...

import * as request from 'request';

然后调用request(),我在 Node 中得到运行时错误(在使用 babel 使代码 ES5 和 Node 兼容之后):

TypeError: request is not a function

另一方面,如果我这样做:

import request from 'request';

然后 TypeScript 编译器抱怨

error TS1192: Module '"<mypath>/node_modules/@types/request/index"' has no default export.

如果我手动更改已编译的 JS 代码以使用import request from 'request';它,它实际上工作正常......我如何强制 TS 编译器接受此代码并直接通过它?

node.js typescript npm-request es6-modules

5
推荐指数
1
解决办法
8484
查看次数

打字稿中的import x = require('x')`和`const x = require('x')`之间的区别

import x = require('x')在es6中,这似乎是无效的语法,并且打字稿文档中没有明确的解释。

typescript ecmascript-6

1
推荐指数
1
解决办法
1508
查看次数