标签:type 如何获取 形式 interface pre 如何 知识 购物车 安装
import Robot from "./components/Robot";
需要在tsconfig文件中打开这两个配置:
"moduleResolution": "node",
"resolveJsonModule": true,
React.FC
表示 functional component 函数式组件的接口 interface
FC表示type React.FC<P = {}> = React.FunctionComponent<P>
其中范性参数P表示props
const Robot: React.FC<RobotProps> = ()=>{}
import ‘./index.css‘;
<div className="app"></div>
import styles from "./App.modules.css";
.d.ts
文件declare module "*.css" {
const css: { [key: string]: string };
export default css;
}
function App() {
return (
<div className={style.list}>xxx</div>
);
}
使用ts提示功能,让模块化引入的css也有提示功能
<div className={style.这里会提示css文件中的样式}></div>
"devDependencies": {
"typescript-plugin-css-modules": "^2.8.0"
}
"plugins": [
{
"name": "typescript-plugin-css-modules"
}
]
{
"typescript.tsdk": "node_modules/typescript/lib",
"typescript.enablePromptUseWorkspaceTsdk": true
}
比如下面,把光标放在onClick上,就会出现提示:
(event:React.MouseEvent<HTMLButtonElement,MouseEvent >)
<button onClick={this.handleClick}>
</button>
点击购物车 2 (件)
:
e.target:描述的是事件发生的元素:<span>购物车2(件)</span>
e.currentTarget :描述的是事件处理绑定的元素:<button class>...</button>
例如:
handleClick = (e:React.MouseEvent<HTMLButtonElement, MouseEvent>) => {
console.log("e.target ", e.target)
console.log("e.currentTarget ", e.currentTarget)
}
<button
className={styles.button}
onClick={this.handleClick}
>
<FiShoppingCart />
<span>购物车 2 (件)</span>
</button>
使用类型断言限制点击的元素
if((e.target as HTMLElement).nodeName === "SPAN"){
this.setState({ isOpen: !this.state.isOpen });
}
componentDidMount() {
fetch("https://jsonplaceholder.typicode.com/users")
.then((response) => response.json())//response.json() 返回主体
.then((data) => this.setState({ robotGallery: data }));
}
标签:type 如何获取 形式 interface pre 如何 知识 购物车 安装
原文地址:https://www.cnblogs.com/xiaozhumaopao/p/14353674.html