有人可以解释一下TypeScript中的外观吗?可以通过进口来完成吗?
JS:
var casper = require('casper').create({})
CoffeeScript的:
casper = require("casper").create()
Visual Studio错误:错误1当前范围中不存在名称“'casper'”
答案 0 :(得分:7)
import something = module('something');
var somevar = something.create({});
这里需要注意的是,我认为今天的TS不允许点击模块('某事')所以你必须将你的陈述分成两部分。
答案 1 :(得分:1)
如果在编译TypeScript时使用模块标志:
--module commonjs
或者
--module amd
它会将导入转换为适当的模块加载语句:
import something = module('something');
var somevar = something.create();
答案 2 :(得分:1)
我整理了一篇关于使用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();
};
答案 3 :(得分: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");
答案 4 :(得分:0)
casper通过npm安装在全局范围内。
带有打字稿的短篇小说如何在这里看到:
https://medium.com/@guyavraham/smoke-tests-casper-js-with-typescript-8b01b504f3a4
答案 5 :(得分:-1)
我写了一篇关于在TypeScript中使用Require的相当全面的文章。我的方法不要求你使用丑陋的
require(['dependency'], function() {
}
语法。相反,在TypeScript中,您可以使用方便的import x = module("x")
语法。