Búsqueda de sitios web

knex.js - Exportar combinación de función y espacio de nombres en Typescript 2


Esta pregunta está motivada por las Declaraciones de Knex Tipo 2.0.

Después de leer el Deep Dive de los Archivos de Declaración del Manual de Typescript, todavía no puedo entender qué está mal o cómo solucionar el problema.

En las declaraciones de tipo de Knex.js, hay 3 declaraciones del mismo nombre seguidas de una exportación de ese nombre:

interface Knex extends Knex.QueryInterface { /*...*/ }

declare function Knex(config: Knex.Config): Knex;

declare namespace Knex { /*..*/ }

export = Knex;

Cuando importo Knex así:

import * as Knex from 'knex';

Esperaría tener acceso a la función Knex, al tipo de interfaz Y al espacio de nombres. Sin embargo, mi tsc (versión 2.0.2 typescript@rc) parece estar importando solo la función Knex.

¿Por qué no puedo acceder a las propiedades del espacio de nombres? ¿Existe una forma sugerida de cambiar las declaraciones de tipo para que pueda tener acceso a las propiedades del espacio de nombres?