【发布时间】:2021-09-15 22:36:25
【问题描述】:
我正在努力学习打字稿,老实说,我在这方面花了很多时间。我知道这个问题之前已经被问过无数次了,但我一生都无法弄清楚如何将我正在阅读的答案翻译成我自己的代码。没有帮助的是我似乎发现很多答案使用与我一直使用的不同的语法来编写组件。无论如何,任何帮助都非常感谢,因为我在这里完全迷失了。我实际上只有两个文件,App.tsx 和 DisplayPerson.tsx
在我的 App.tsx 文件中,我有以下代码:
import React from 'react';
import DisplayPerson from './components/DisplayPerson';
export interface Person {
firstName: string;
lastName: string;
}
function App() {
const person1: Person = {
firstName: 'fname',
lastName: 'lname',
};
return (
<div>
<DisplayPerson person={person1} />
</div>
);
}
export default App;
在我的 DisplayPerson.tsx 文件中,我有:
import React from 'react';
import { Person } from '../App';
export default function DisplayPerson({ person }: Person) {
return (
<div>
<h1>person.firstName</h1>
<h1>person.lastName</h1>
</div>
);
}
在 DisplayPerson.tsx 中,我有一个错误,提示“'Person' 类型上不存在属性 'person'”。我试图通过将我的 Person 界面更改为:
export interface Person {
person : {
firstName: string;
lastName: string;
}
}
我的 person1 const 声明如下:
const person1: Person = {
person: {
firstName: 'fname',
lastName: 'lname',
},
};
这确实解决了 DisplayPerson.tsx 中的错误,但是我现在在 App.tsx 中有一个错误,它说“类型'Person'缺少来自类型'{ firstName: string; lastName: string;}'的以下属性: firstName, lastName。预期类型来自属性“person”,该属性在此处声明为“IntrinsicAttributes & Person”类型
这是当我尝试用谷歌搜索我的问题时,坦率地说,即使没有谷歌搜索,我也无法找出问题所在。非常感谢任何帮助,如果您还可以解释为什么我所做的事情不起作用,我会非常喜欢。
非常感谢!
【问题讨论】:
标签: reactjs typescript react-props react-typescript