我的HTML包含以下内容:
<script src="js/vendor/react.js"></script>
<script src="js/vendor/react-dom.js"></script>
<script type="text/javascript" src="my-react-component.js"></script>
...我正试图在Visual Studio 2015中编写一个简单的TSX文件,将其传输到我的react组件中。js:
/// <reference path="../../typings/tsd.d.ts" />
class ExampleApplication extends React.Component<any, {}> {
render() {
return <p>{this.props.message}</p>;
}
};
ReactDOM.render(
<ExampleApplication message="Hello, world" />,
document.getElementById('container')
);
我已经导入了react.d.ts
和react-dom.d.ts
,并将它们包含在我的tsd.d.ts
问题是:TypeScript将无法识别"React"和"ReactDOM",除非我显式导入它们,并使用:
import * as React from "react";
import * as ReactDOM from "react-dom";
这对于编辑文档非常有用。tsx(事实上,我得到了这些名称空间的完整IntelliSense)。
但是转置的. js——使用“反应”JSX编译选项——包括不需要的要求:
var React = require("react");
var ReactDOM = require("react-dom");
这会导致页面执行出错,因为React和ReactDOM都是React定义的全局名称。js,并且没有可用的“require”函数。
有没有一种方法可以将这些名称声明为TypeScript,而不发出每个名称的实际要求?
否则-我想做的有什么错?我错过了什么?
有没有一种方法可以将这些名称声明给TypeScript,而不发出每个名称的实际需求?
有。使用TypeScript定义的全局版本:https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/react/react-global.d.ts
否则,我想做的有什么不对?我错了什么?
使用全局模块是个坏主意。一旦扩展到大约50个文件,您就会遇到问题(发生得非常快)https://github.com/TypeStrong/atom-typescript/blob/master/docs/out.md
我正在typescript中创建一个类,该类的属性是ES6(ECMAscript 2016)映射,如下所示: 如何在打字稿中声明ES6 Map类型?
问题内容: 我将TypeScript与/一起使用。 对于使用模块,《 TypeScript手册》显示以下语法: 而且文件显示: 我还搜索了MSDN博客,但找不到任何东西。 截至2016年初,哪个更正确?两者之间有什么区别(如果有)? 在哪里可以找到有关要使用的最新语法的信息的最佳来源,以便将来我可以找到此信息? 问题答案: 这些大多是等效的,但有一些限制不是。 创建一个标识符,它是一个 模块对象
我正在努力寻找 有什么不同?
我有这段代码,但我需要把它翻译成打字稿,并有问题找到请求模块 }
问题内容: 我希望能够实例化一个Typescript类,在运行时可以获取该类和构造函数的详细信息。我想编写的函数将包含类名和构造函数参数。 问题答案: 您可以尝试: 编辑 此版本可在TypeScript操场上使用,例如:
我正在学习Typescript,并尝试实现一个简单的React/Redux应用程序。当我使用同步操作时,它工作得很好,但问题在于异步操作。我正在学习官方的redux教程。 首先,我宣布会议状态 然后我为这个动作声明接口 我使用联合类型导出它们