Typescript导入语句

时间:2015-11-19 22:56:16

标签: typescript typescript1.6

我想了解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>

1 个答案:

答案 0 :(得分:2)

  

引号中的部分从中查找。

  • 首先有declare module "aurelia-framework"
  • 的任何内容
  • 然后,根据模块分辨率,目录树中的文件aurelia-frameworkclassic模块解析)或目录树中的Node style lookup(如果--module commonjs或显式节点模块解析)。
  

这是另一个将resharper插入到我的代码中的内容:

相对文件导入是相对.d.ts.ts.tsx导入。

更多

  

import foo from "foo" vs import foo = require('foo')

第一个是ES6样式导入(由ES6支持),第二个是nodejs样式导入(以var foo = require('foo')为模型)

  

import breeze from "breeze";

您可能想要import * as breeze from "breeze"