Typescript速记环境模块

时间:2016-09-25 13:21:07

标签: typescript

以下是来自official guide about module的代码段。

import x, {y} from "hot-new-module";
x(y);

我不懂语法。为什么x不在大括号中?语法是什么?

2 个答案:

答案 0 :(得分:2)

x是默认导出。 y是一个命名导出。

Module.ts

export class y { }
const x = (someVar: y) => { /* */ };
export default x;

使用您的语法

导入
import x, {y} from "hot-new-module";
x(y);

答案 1 :(得分:0)

我也很难理解手册的这一部分,但最终我发现了它。他们的意思是你可以拥有一个仅包含declare module "mymodulename";的声明文件,然后即使你没有声明任何内容,你也可以从该模块导入任何内容。 这就是您导入的内容将具有 任何 类型的原因。例如:

shorthandmodule.d.ts

declare module "hot-new-module";

myscript.ts

import blabla, {x}, {anything} from "hot-new-module"

blabla x 任何的类型为 任何 ,&#39 ;为什么你可以输入像

这样的东西
blabla(x)
x(blabla)
anything[x]
anything.unknownproperty = true

blabla 周围缺少大括号意味着它指的是模块中的default export。每个模块只能有一个默认导出,这就是为什么只有blabla没有括号,但它可能是任何导入,因为它们都没有被声明。