TypeScript:使用 DefinitelyTyped 定义时出现 TS2036 "not a module" 错误

TypeScript: TS2036 "not a module" error when working with DefinitelyTyped definitions

我从 DefinitelyTyped 中提取了 react.d.ts 文件,并将其作为 node_modules/react/react.d.ts 包含在我的项目中。现在,当我写 import * as React from "node_modules/react/react" 时,出现以下错误:

Error TS2306: File '.../node_modules/react/react.d.ts' is not a module.

我可以通过更改 react.d.ts 中的以下行来解决此问题:

declare module "react" {
    export = __React;
}

至:

export = __React;

我的问题是:建议使用 TypeScript 定义文件的工作流程是什么?

使用新的 TypeScript 2.0,仍处于测试阶段 (npm install typescript@beta -g),您应该使用 npm install @types/react 获取您的定义文件。 其次,如果模块(或模块的声明)中有语句 export =,则应使用语法 import = 进行相应导入,如下所示:import React = require('react');