knex.js - Exportar combinação de função e namespace no Typescript 2
Esta questão é motivada pelas Declarações Knex Tipos 2.0.
Depois de ler o Typescript-Handbook Declaration Files Deep Dive, ainda não consigo entender o que está dando errado ou como corrigir o problema.
Nessas declarações de tipo do Knex.js, existem 3 declarações com o mesmo nome seguidas por uma exportação desse nome:
interface Knex extends Knex.QueryInterface { /*...*/ }
declare function Knex(config: Knex.Config): Knex;
declare namespace Knex { /*..*/ }
export = Knex;
Quando eu importo o Knex assim:
import * as Knex from 'knex';
Eu esperaria ter acesso à função Knex, ao tipo de interface E ao namespace. No entanto, meu tsc (versão 2.0.2 typescript@rc) parece importar apenas a função Knex.
Por que não consigo acessar as propriedades do namespace? Existe uma maneira sugerida de alterar as declarações de tipo de forma que eu tenha acesso às propriedades do namespace?