Reactjs TypeScript命令行编译成功完成,但显示错误
我正在浏览以下JSX TypeScript教程: 使用Reactjs TypeScript命令行编译成功完成,但显示错误,reactjs,typescript,react-jsx,typescript1.6,Reactjs,Typescript,React Jsx,Typescript1.6,我正在浏览以下JSX TypeScript教程: 使用tsc.cmd-w命令,以下代码在浏览器中编译并成功执行,但在控制台中仍会出现错误: // app.tsx var content = <div>Hello, world!</div>; $(() => { let target = document.getElementById('output'); React.render(content, target); }); //app.tsx v
tsc.cmd-w
命令,以下代码在浏览器中编译并成功执行,但在控制台中仍会出现错误:
// app.tsx
var content = <div>Hello, world!</div>;
$(() => {
let target = document.getElementById('output');
React.render(content, target);
});
//app.tsx
var content=Hello,world!;
$(() => {
让target=document.getElementById('output');
反应。呈现(内容、目标);
});
`
app.tsx(30,16):错误TS2304:找不到名称“React”。
app.tsx(34,5):错误TS2304:找不到名称“React”。
消息TS6042:编译完成。监视文件更改。
`
为什么即使编译成功,我仍然会出错?如何消除错误
我使用的是TypeScript 1.6
为什么即使编译成功,我仍然会出错
从typescript获得js并不意味着编译成功。以下是有关此主题的更多信息:
如何消除错误
您需要
react.d.ts
文件(tsd install react
)()basarat回答了我的第一个问题,但我仍然有编译错误的问题
在再次查看错误之后,我意识到TypeScript编译器无法找到React,但它在查找JQuery时似乎没有问题。所以我打开了React.d.ts文件,果然,这就是问题所在。React名称空间的名称为\uu React
,而不是React
。像这样对名称空间进行别名
import React = __React;
允许我消除类型脚本错误,但不幸的是,应用程序当时希望找到一个名为_React的全局变量。但是从Bower下载的React库有一个变量,如您所料,名为React
我在index.html文件中包含react脚本之后添加了以下脚本
<script>var __React = React;</script>
var\uuuu React=React;
这允许应用程序运行
我不知道为什么类型定义文件有这个名称空间,或者我是否以正确的方式解决了这个问题,但是现在这解决了我的问题
更新
我找到了一个更好的方法。。。安装react global
tsd安装react global
会公开react名称空间,因此不需要进行上述攻击谢谢。我不知道即使存在编译错误,TypeScript也会发出JavaScript。您对我的第二个问题的回答没有帮助,因为我已经按照链接文章中的步骤安装了必要的打字。因为您没有使用外部模块。使用tsd安装react global
获取react()的全局版本。也就是说,我强烈建议您将文件模块与weback之类的东西一起使用。
<script>var __React = React;</script>