将使用commonjs定义的输入转换为没有模块系统的打字

时间:2018-02-02 21:15:23

标签: typescript typescript-typings definitelytyped

我正在从VS 2013 + TS 1.8迁移到VS 2017 + TS 2.5

作为这项工作的一部分,似乎我必须更新反应的类型等。

不幸的是,新的输入正在使用commonjs:

https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react-dom

旧的打字机没有使用任何模块系统。

有没有办法将commonjs d.ts转换为"没有模块" d.ts?

1 个答案:

答案 0 :(得分:0)

反应的类型有export as namespace React,这很特别 -  如果你的代码没有使用任何模块系统,它允许你只使用全局变量React

因此,例如,此代码可以使用最新的typescript@2.7.2@types/react@16.0.38@types/react-dom@16.0.4编译(和类型检查):

ReactDOM.render(
  <h1>Hello, world!</h1>,
  document.getElementById('root')
);

以下是有关特殊export as namespace功能的更多信息:https://github.com/Microsoft/TypeScript/wiki/What's-new-in-TypeScript#support-for-umd-module-definitions