6

有人可以解释一下这在 TypeScript 中的外观吗?可以通过进口来完成吗?

JS:

var casper = require('casper').create({})

咖啡脚本:

casper = require("casper").create()

Visual Studio 错误:错误 1 ​​当前范围内不存在名称“casper”

4

6 回答 6

8
import something = module('something');
var somevar = something.create({});

我认为这里要注意的一点是,今天的 TS 不允许对 module('something') 进行打点,所以你必须将你的陈述分成两部分。

于 2012-11-14T19:27:23.147 回答
2

我整理了一篇关于使用 require.js 和 Typescript 的博客。
http://blorkfish.wordpress.com/2012/10/23/typescript-organizing-your-code-with-amd-modules-and-require-js/ 您将能够编写如下代码:

require["casper", (casper) => {
    var item = casper.create();
};
于 2012-11-15T01:05:27.193 回答
1

如果在编译 TypeScript 时使用模块标志:

--module commonjs

或者

--module amd

它将导入转换为适当的模块加载语句:

import something = module('something');
var somevar = something.create();
于 2012-11-14T19:28:46.307 回答
0

如果那个 casper 东西是用 JavaScript 编写的,你也需要为它声明一个模块(否则它不会编译)。

按照惯例,您将此类声明放在名为 casper.d.ts 的单独文件中:

declare module casper {
    export class SomeClassInCasper {
    }

    export function someFunctionInCasper();
}

您将在导入/模块上方的顶部包含对该 casper.d.ts 的引用:

/// <reference path="casper.d.js" />

import casper = import("casper");
于 2012-11-16T11:39:14.537 回答
0

casper 通过 npm 在全局范围内安装。

  1. 打字安装 dt~casperjs --global --save
  2. 声明 var casper;(在您的代码上)

在这里可以看到一个带有打字稿的简短 casper:

https://medium.com/@guyavraham/smoke-tests-casper-js-with-typescript-8b01b504f3a4

于 2016-06-19T13:27:29.997 回答
-1

我写了一篇关于在 TypeScript 中使用 Require 的相当全面的文章。我的方法不需要你使用丑陋的

require(['dependency'], function() {

}

句法。相反,在 TypeScript 中,您可以使用方便的import x = module("x")语法。

于 2013-01-16T16:58:33.657 回答