我想了解import
的{{3}}的不同语法以及何时需要使用它们。
我正在使用typescript 1.6(截至目前的最新版本)。
我看过几个做导入的例子。一个看起来像这样:
import {Aurelia} from "aurelia-framework";
这使我可以从Aurelia框架访问Aurelia
。我或多或少得到了这个,但我不确定引号中的部分从哪里查看。
这是另一个将resharper插入到我的代码中的内容:
import myJsServiceActions = require("../../service_actions/myJsFile");
这也让我可以访问myJsFile中的内容。但语法完全不同。这个似乎是引号中的路径引用。
此外,这个不像第一个那样使用花括号{}。当我尝试输入{ServiceActions}(该文件中的一个模块)之类的内容时,它会在require
上给出一个错误,表示期望字符串文字。
第二种用法(从第一次使用)有何不同?
我也在互联网上看到过这些用法,但我假设它们只是较旧的语法(如果仍然使用它们请说明它们有何不同):
/// <reference path="myModules.d.ts" />
....
import gt = module('greeter');
最后,它如何找到引号中的内容?我试过这个:
import breeze from "breeze";
我收到错误:
无法找到模块“breeze”
但在我的config.js中,这些是彼此相邻的:
map: {
//....
"aurelia-framework": "github:aurelia/framework@0.18.0",
"breeze": "npm:breeze-client@1.5.5",
//.....
}
在我看来,如果aurelia-framework的导入有效,那么微风也应该起作用。但我认为这是我对'导入'如何工作的无知导致问题。< / p>
答案 0 :(得分:2)
引号中的部分从中查找。
declare module "aurelia-framework"
aurelia-framework
(classic
模块解析)或目录树中的Node style lookup(如果--module commonjs
或显式节点模块解析)。 这是另一个将resharper插入到我的代码中的内容:
相对文件导入是相对.d.ts
或.ts
或.tsx
导入。
import foo from "foo"
vsimport foo = require('foo')
第一个是ES6样式导入(由ES6支持),第二个是nodejs
样式导入(以var foo = require('foo')
为模型)
import breeze from "breeze";
您可能想要import * as breeze from "breeze"