我有一个简单的代码来通过 Axios 获取数据:
const response= await axios.get("blabla");
Run Code Online (Sandbox Code Playgroud)
现在我正在尝试使用打字稿。
当我将类型添加到 get 方法时,它会起作用:
const response= await axios.get<Todo[]>("blabla");
Run Code Online (Sandbox Code Playgroud)
但我需要的是:
const response:Todo[] = await axios.get("blabla");
Run Code Online (Sandbox Code Playgroud)
但如果我这样做,我会收到一个错误消息response.data:“Todo[]”类型上不存在属性“数据”
所以有两个问题:1)为什么第一种方法没有发生?2)第二种方式怎么做?
我正在使用 Material UI。在文档中它表明我可以使用:
import Icon from "@material-ui/core/Icon";
...
<Button variant="contained" color="primary" className={classes.button}>
blabla
<Icon className={classes.rightIcon}>send</Icon>
</Button>
Run Code Online (Sandbox Code Playgroud)
但它显示的是一个带有“BLABLA SE”文本的按钮,这是错误的。
但是当我使用:
import SendIcon from "@material-ui/icons/Send";
....
<Button variant="contained" color="primary" className={classes.button}>
Blabla
<SendIcon className={classes.rightIcon} />
</Button>
Run Code Online (Sandbox Code Playgroud)
它工作得很好,BLABLA左侧有一个文本和一个发送图标。
在文档中提供的沙箱中,两者都可以工作。那么为什么第一种情况对我不起作用?