2016-09-25 40 views

回答

2

x是默認導出。 y是一個命名的導出。

Module.ts

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

這是進口與你的語法

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

我難以理解手冊的那部分太多,但最終我想通了。他們的意思是你可以有一個只包含declare module "mymodulename";的聲明文件,然後你可以從該模塊導入任何東西,即使你沒有聲明任何東西。 這就是爲什麼您導入的任何東西都有任何類型的類型。例如:

shorthandmodule.d.ts

declare module "hot-new-module"; 

myscript.ts

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

布拉布拉X任何類型的任何這就是爲什麼你可以像

blabla(x) 
x(blabla) 
anything[x] 
anything.unknownproperty = true 

各地布拉布拉缺少大括號的意味着它是指一個default export模塊中類的東西。每個模塊只能有1個默認導出,這就是爲什麼只有blabla沒有括號,但它可以是任何導入,因爲它們都沒有被聲明。