Angular2 - 如何从打字稿打字定义文件中正确导出和导入?

Jam*_*ang 5 typescript angular

假设我有一个发布到 NPM 的库,只有一行:

// file name index.js
function myLib(x) {return x;}
Run Code Online (Sandbox Code Playgroud)

想要将它导入到app.component.ts这个 repo

https://github.com/AngularClass/angular2-webpack-starter/blob/master/src/app/app.component.ts

之后npm install myLib,并将index.d.ts文件创建node_modules/myLib/

export default function myLib (x: any): any;
// or 
// declare function myLib (x: any): any;
// export default myLib;
Run Code Online (Sandbox Code Playgroud)

以下是我的问题:

Q1.将其消耗app.component.ts为:

import myLib from 'myLib'
console.log( myLib )
Run Code Online (Sandbox Code Playgroud)

结果是undefined,为什么?

Q2.如果更改代码如下:

import * as myLib from 'myLib'
console.log( myLib )
Run Code Online (Sandbox Code Playgroud)

结果是function myLib(x) {return x;},看起来是对的,但是

console.log( myLib(123) )
Run Code Online (Sandbox Code Playgroud)

Webpack 显示错误消息:

src/app/app.component.ts:12:21

无法调用类型缺少调用签名的表达式

我勒个去?

谢谢!!