我想写一个TypeScript库。我想使用2.0,因为它知道它是最新的,它有一套非常酷的功能。但是,我担心大多数人(可能仍然使用1.8-)无法使用它。
TypeScript 2.0 d.ts
定义文件是否向后兼容1.8版?如果没有,是否有一套我可以遵循的最佳实践以确保兼容性?如果做不到的话,我可以做其他事吗?
答案 0 :(得分:4)
TypeScript 2.0定义文件与1.8兼容,只要您不公开任何特定于2.0的功能(例如readonly
或数字文字类型)。
最简单的方法是正常开发,并使用npm
安装的1.8编译器副本来验证它仍然能够解析.d.ts文件。在这种情况下,其他一些人已经将一些正则表达式替换到他们的构建链中,从他们的.d.ts文件中删除了一些仅限2.0的功能,如readonly
。
将来可能会有一个工具将特定于2.0的功能降级到最接近的1.8兼容功能,但还没有人编写它(FWIW它相对简单)。
never
类型null
和undefined
类型interface I { x: 0 }
)this
类型(例如f(this: something)
)export as namespace g
)readonly