传统的lib.js:
function Foo () {...}
Foo.a = function() {...}
module.exports = Foo
键入lib.d.ts:
declare module "foo" {
type Type = "a"|"b"|"c"
interface Foo {
(a: Type): string
...
}
export = Foo
// how do i export Type??
}
消费者应用程序:
import Foo = require('foo')
// how do i get Type from lib.d.ts??
答案 0 :(得分:0)
如何从lib.d.ts获取Type?
如果未导出,则无法获取。
答案 1 :(得分:0)
这是一个非常老的问题,但我需要自己回答。如果在这种情况下,“ Foo”是默认的modules.exports
,则可以在模块声明中的export default
上使用Foo
:
declare module "foo" {
export type Type = "a"|"b"|"c" // export any custom types you like
export default interface Foo { // default works
(a: Type): string
...
}
}
然后在其他地方可以做:
import Foo, { Type } from 'foo'