Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Typescript react/redux指南-如何从js翻译?_Javascript_Typescript_Visual Studio Code_React Redux - Fatal编程技术网

Javascript Typescript react/redux指南-如何从js翻译?

Javascript Typescript react/redux指南-如何从js翻译?,javascript,typescript,visual-studio-code,react-redux,Javascript,Typescript,Visual Studio Code,React Redux,我在翻译这个。以下是我到目前为止翻译的代码(在Todo.tsx中): 因为PropTypes似乎不包含任何bool或func或string成员。将import*替换为来自“react”的PropTypes使用导入*作为“道具类型”中的道具类型 import * as React from 'react' import * as PropTypes from 'react'; 这两条线路很奇怪,我不确定它们是否正常工作React和PropTypes是它们自己包的默认导出。因此,如果您使用的是Re

我在翻译这个。以下是我到目前为止翻译的代码(在Todo.tsx中):


因为
PropTypes
似乎不包含任何
bool
func
string
成员。

import*替换为来自“react”的PropTypes使用
导入*作为“道具类型”中的道具类型

import * as React from 'react'
import * as PropTypes from 'react';
这两条线路很奇怪,我不确定它们是否正常工作
React
PropTypes
是它们自己包的默认导出。因此,如果您使用的是React
v15.5
及以上版本,则应为:

import React from 'react';
import PropTypes from 'prop-types';
如果您使用的是较低版本的React,还可以执行以下操作:

import React,{PropTypes}来自'React'

关于你的
TypeScript
问题:

您可以删除
propTypes
声明,因为您已经在使用声明的
接口用
TypeScript
键入组件。因此,
propTypes
变得毫无用处


您仍然可以使用
defaultProps
如果您的一个道具是可选的

首先,实际上没有理由将PropTypes与TypeScript一起使用

第二,您可能想考虑启用<代码>“允许合成”或“代码”>或“最近的添加,它的名字从我的代码中逃逸到您的代码> TSCONFIG.JSON<代码>,这样您就可以避免<代码>导入*> < /COD> < < /P> 第三,您应该将您的SFC定义为

React.SFC
,而不是在参数中断言预期的道具。详情如下:

const Todo: React.SFC<ITodo> = (props) => ();
const Todo:React.SFC=(props)=>();

当然,您可以像以前那样解构和使用JSX。

这是如何编译的?在较新的版本中或
React
PropTypes在其自己的包中
PropTypes
。它不再在
react
包中,但最好
从“prop-types”导入PropTypes您绝对不应该将包中的所有导出重命名为新命名空间。如果可以,应避免使用
*
IMO@KevinAmiranoff你建议改为使用什么-我认为导入特定的名称空间,但是从
React
导入什么特定的名称空间。什么是
defaultProps
?@anarrayofffunctions与你的问题无关,但却是一个重要的React概念。为什么使用
React.SFC
更好?我已经设置了您指定的标志-
allowSyntheticDefaultImports
,但是您能否向我解释一下这有助于避免
import*as
-我还应该写些什么?不管怎样,我想我得到了它-
从'React'导入React
@KevinAmiranoff它是惯用的,所以乍一看你就知道你在使用React-SFC。它还为您定义了
子项
。这些理由还不足以保证你可以回去改变你以前做过的一切,但是我建议你继续使用
React.SFC
。@anarrayofffunctions你知道了。以下是TS文档:谢谢@萨姆
import React from 'react';
import PropTypes from 'prop-types';
const Todo: React.SFC<ITodo> = (props) => ();