使用是否有反应。PropTypes
在TypeScript React应用程序中是有意义的,还是这只是“皮带和吊带”的一种情况?
由于组件类是使用Props
类型参数声明的:
interface Props {
// ...
}
export class MyComponent extends React.Component<Props, any> { ... }
添加有什么真正的好处吗
static propTypes {
myProp: React.PropTypes.string
}
对类的定义?
正如@afonsoduarte所说。
我要补充的是,您还可以从PropTypes生成Typescript类型,如下所示:
const propTypes = {
input: PropTypes.shape({
id: PropTypes.number.isRequired,
name: PropTypes.string.isRequired,
}),
};
type MyComponentProps = PropTypes.InferProps<typeof propTypes>;
const MyComponent: FunctionComponent<MyComponentProps > = (props) => {
// ...
}
MyComponent.propTypes = propTypes;
通常,将组件道具维护为TypeScript类型和React并没有多大价值。同时使用PropTypes
。
以下是一些这样做有用的情况:
所以,通常是一个关于编译时验证的信任度的问题。
较新版本的TypeScript现在可以根据React推断类型。PropTypes
(PropTypes.InferreProps
),但生成的类型可能难以使用或在代码的其他地方引用。
Typescript和PropType有不同的用途。Typescript在编译时验证类型,而PropType在运行时检查。
Typescript在编写代码时很有用:如果您将错误类型的参数传递给React组件,它将警告您,并为您提供函数调用的自动完成功能,等等。
当您测试组件如何与外部数据交互时,例如从API加载JSON时,PropType非常有用。PropTypes将通过打印以下有用消息来帮助您调试(在React的开发模式下)组件失败的原因:
Warning: Failed prop type: Invalid prop `id` of type `number` supplied to `Table`, expected `string`
尽管看起来Typescript和PropType做的是同一件事,但它们实际上并没有重叠。但是可以从Typescript自动生成PropTypes,这样就不必指定两次类型,例如,请参见:
问题内容: 在TypeScript React Application中使用有意义吗?还是“皮带和吊带”的情况? 由于组件类是使用类型参数声明的: 有添加任何真正的好处吗 类定义? 问题答案: 将两个组件道具同时保持为TypeScript类型通常没有太大价值。 在某些情况下,这样做很有用: 发布将由普通JavaScript使用的包,例如组件库。 接受并传递外部输入,例如API调用的结果。 使用库中
我试图在ASP.NET Core2.2应用程序(Visual Studio 2019)中执行一个Typescript文件到另一个Typescript文件的简单导入。我没有使用任何其他框架,如Angular。我遇到了无法在运行时为模块文件找到正确路径的问题。 我有两个简单的Typescript文件,我已经放在子文件夹“Typescript”中--它们被命名为“mytsmodule.ts”和“anot
我尝试将其用于typescript绑定: 测试. ts: 没有: 测试. ts: 但当我呼唤那一刻。format(),我得到一个错误。应该很简单,有人能提供一个命令行/导入组合吗?
我正试着做一些代码拆分和修改。js是我想在一个单独的块中隔离的目标包之一。我是这样做的: 但我得到以下错误:。所以我想我应该做一些类似于<代码>时刻的事情。valueOf(currentNb)但我不太确定。有人能解释一下吗?提前谢谢
我有一个TypeScript应用程序。我想将node_modules内的依赖项捆绑到生成的捆绑包中。这是我迄今为止根据这些帖子尝试的内容(是否汇总捆绑包node_modulesbundle.js?,是否汇总捆绑包node_modulesbundle.js?)。 以下是我的汇总配置和我尝试绑定的简单文件: 文件: 使用汇总打字稿时,如何在node_modules中获取依赖项以捆绑到最终输出中?我怀疑
我正在尝试创建一个新的react应用程序: 安装似乎工作正常,但当我尝试的应用程序,我得到一个错误: C:\。。。\我的应用程序\node\u modules\react scripts\scripts\utils\verifyTypeScriptSetup。js:239 appTsConfig。编译器选项[选项]=值^ TypeError:无法在对象的verifyTypeScriptSetup(