Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.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
Reactjs TypeScript可以使React组件实例化类型安全吗?_Reactjs_Typescript_React Dom - Fatal编程技术网

Reactjs TypeScript可以使React组件实例化类型安全吗?

Reactjs TypeScript可以使React组件实例化类型安全吗?,reactjs,typescript,react-dom,Reactjs,Typescript,React Dom,我对打字脚本和反应非常陌生,因此对于任何不正确或令人困惑的术语,我深表歉意。基本上这就是我所看到的: <MyComponent someNumber="40" /> 如果为组件道具定义接口,编译器将为您检查所有这些: interface MyProps { someNumber: number; } interface MyState {} class MyComponent extends React.Component<MyProps, MyState> {

我对打字脚本和反应非常陌生,因此对于任何不正确或令人困惑的术语,我深表歉意。基本上这就是我所看到的:

<MyComponent someNumber="40" />

如果为组件道具定义接口,编译器将为您检查所有这些:

interface MyProps {
    someNumber: number;
}
interface MyState {}
class MyComponent extends React.Component<MyProps, MyState> {}

let a1 = <MyComponent someNumber={ 40 } />; // fine
let a2 = <MyComponent />; // Error: Property 'someNumber' is missing in type ...
let a3 = <MyComponent someNumber="40" />; // Error: Type 'string' is not assignable to type 'number'

解决了问题。

我现在确实在这样做,但我正在引用外部文件中的
MyComponent
。但仍然没有得到任何错误。作为参考,这是我正在处理的示例:*实例化:*定义:我还尝试在定义它的同一文件中实例化无效组件,但仍然没有从编译器中获得任何错误。使用版本2.0.3,我在编译代码时遇到很多错误。类似于:
类型“string”不可分配给类型“number”
并且
属性“initialValue”在类型“intrinsitattributes&IntrinsicClassAttributes&Props&{children?:ReactNode;}”中丢失。
。请用你的
tsconfig.json
fileStrange更新你的问题,我这边编译的很好。在问题中添加了tsconfig.json。看起来还可以。你是怎么编译的<代码>tsc从命令行?在IDE中?
interface MyProps {
    someNumber: number;
}
interface MyState {}
class MyComponent extends React.Component<MyProps, MyState> {}

let a1 = <MyComponent someNumber={ 40 } />; // fine
let a2 = <MyComponent />; // Error: Property 'someNumber' is missing in type ...
let a3 = <MyComponent someNumber="40" />; // Error: Type 'string' is not assignable to type 'number'
npm install @types/react