react+typescript给state和props定义指定类型

简介: react+typescript给state和props定义指定类型


背景

在react+typescript编写代码的时候,提示类型“Readonly<{}>”上不存在属性“xxx”

这是因为state和props没有定义类型导致的。

解决办法

  • 法一
    给state和props都定义指定类型
import React, { Component } from 'react';
type StateType = {
  username: string;
};
type propType = {
  name: string;
  [propName: string]: any;
};
interface User {
  state: StateType;
  props:propType
}
class User extends Component {
  constructor(props: any) {
    super(props);
    this.state = {
      username: '李四'
    }
  }
  render() {
    return (
      <div>
        <div className="title">用户名{this.state.username}</div>
        <div className="title">用户名{this.props.name}</div>
      </div>
    )
  }
}
export default User

法二:

React.Component改成React.Component<any, any>

但是不推荐这样,因为这样就失去了ts检测类型的意义

import React, { Component } from 'react';
export default class User extends Component<any, any> {
  constructor(props: any) {
    super(props);
    console.log(props);
    this.state = {
      username: '李四'
    }
  }
  render() {
    return (
      <div>
        <div className="title">用户名{this.state.username}</div>
        <div className="title">用户名{this.props.name}</div>
      </div>
    )
  }
}

文章参考

https://www.cnblogs.com/llcdbk/p/13029996.html

目录
相关文章
|
2月前
|
前端开发 JavaScript 安全
TypeScript在React Hooks中的应用:提升React开发的类型安全与可维护性
【7月更文挑战第17天】TypeScript在React Hooks中的应用极大地提升了React应用的类型安全性和可维护性。通过为状态、依赖项和自定义Hooks指定明确的类型,开发者可以编写更加健壮、易于理解和维护的代码。随着React和TypeScript的不断发展,结合两者的优势将成为构建现代Web应用的标准做法。
|
21天前
|
JavaScript 前端开发 安全
[译] 使用 TypeScript 开发 React Hooks
[译] 使用 TypeScript 开发 React Hooks
|
19天前
|
前端开发 JavaScript
React 中的不同类型组件
【8月更文挑战第31天】
16 0
|
1月前
|
前端开发
React——定义组件【六】
React——定义组件【六】
23 0
|
1月前
|
JavaScript 前端开发 编译器
Typescript 回调函数、事件侦听的类型定义与注释--拾人牙慧
Typescript 回调函数、事件侦听的类型定义与注释--拾人牙慧
|
2月前
|
JavaScript 前端开发 IDE
React 项目中有效地使用 TypeScript
React 项目中有效地使用 TypeScript
|
2月前
|
前端开发 JavaScript 开发者
React 和 TypeScript
React 和 TypeScript
|
3月前
|
前端开发 JavaScript 开发者
React和TypeScript各自以其独特的优势赢得了广大开发者的青睐
【6月更文挑战第12天】React和TypeScript是前端开发的强强联合。TypeScript提供静态类型检查和面向对象特性,增强代码健壮性和团队协作效率;React凭借组件化、高性能和丰富生态系统引领UI构建。两者结合,能精确定义React组件类型,提升代码组织和维护性,通过安装TypeScript、配置、编写及构建步骤,可在React项目中实现这一优势。这种结合为前端开发带来进步,未来应用将更加广泛。
48 1
|
4月前
|
缓存 前端开发 JavaScript
React适合开发什么类型的应用?
【5月更文挑战第27天】React适合开发什么类型的应用?
66 3
|
1月前
|
JavaScript
TypeScript——不能将类型“HTMLElement | null”分配给类型“HTMLElement”
TypeScript——不能将类型“HTMLElement | null”分配给类型“HTMLElement”
28 4