gpt4 book ai didi

Typescript 导入语句

转载 作者:搜寻专家 更新时间:2023-10-30 21:00:27 24 4
gpt4 key购买 nike

我试图理解有什么不同的语法 esimport会以及何时需要使用它们。

我使用的是 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";

我得到了错误:

Cannot find module "breeze"

但在我的 config.js 中,它们是紧挨着彼此定义的:

map: {
//....
"aurelia-framework": "github:aurelia/framework@0.18.0",
"breeze": "npm:breeze-client@1.5.5",
//.....
}

在我看来,如果 aurelia-framework 的导入有效,那么 breeze 也应该有效。但我认为是我对“导入”的工作方式的无知导致了这个问题。

最佳答案

where the part in the quotes is looking up from.

  • 首先是声明模块“aurelia-framework”
  • 然后根据模块分辨率将文件 aurelia-framework 添加到目录树(classic 模块分辨率)或 Node style lookup向上目录树(如果 --module commonjs 或显式节点模块解析)。

Here is another one that resharper inserted into my code:

相对文件导入是相对.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"

关于Typescript 导入语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33815907/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com