这个问题是由Types 2.0 Knex Declarations推动的。
阅读Typescript-Handbook Declaration Files Deep Dive后,我仍然无法理解出现问题或如何解决问题。
在Knex.js类型声明中,有3个相同名称的声明,后面跟着该名称的导出:
interface Knex extends Knex.QueryInterface { /*...*/ }
declare function Knex(config: Knex.Config): Knex;
declare namespace Knex { /*..*/ }
export = Knex;
当我导入Knex时:
import * as Knex from 'knex';
我希望可以访问Knex函数,接口类型和AND名称空间。但是,我的tsc(版本2.0.2 typescript @ rc)似乎只是导入Knex函数。
为什么我无法访问命名空间的属性?是否有建议的方法来更改类型声明,以便我可以访问命名空间的属性?