代码之家  ›  专栏  ›  技术社区  ›  Daan

如何设置一个对象具有反应状态的Typescript?

  •  0
  • Daan  · 技术社区  · 7 年前

    我不熟悉打字。我知道如何建立一个 interface Object 类型?

    interface MyProps {
        defaultgreeting: 'Hello'
    }
    
    interface MyState {
        greeting: string
    }
    
    class MyApp extends Component<MyProps, MyState> {
        constructor(props: any) {
            super(props);
            this.state: {
                greeting: this.props.defaultgreeting
            }
        }
    }
    

    我将如何为以下状态设置此设置(它需要 )?:

    this.state: {
        greeting: this.props.defaultgreeting,
        users: {
            name: 'John Doe',
            age: 25
        }
    }
    
    2 回复  |  直到 7 年前
        1
  •  4
  •   DeeV    7 年前

    你有几个选择。

    你可以定义 Users MyState 界面如下:

    interface MyState {
        greeting: string;
        users: {
           name: string;
           age: number;
        }
    }
    

    或者,你可以定义 用户 对象,并将其类型指定给 users

    interface User {
       name: string;
       age: number;
    }
    
    interface MyState {
       greeting: string;
       users: User;
    }
    

    我通常更喜欢第二个选项,因为它允许您按如下方式键入对象:

    const users: User = {
       name: "John Doe",
       age: 25
    }
    

    interface MyState {
        greeting: string;
        users: {
           name: string;
           age: number;
        }
    }
    
    const users = {
       name: "John Doe",
       age: 25
    }
    
    const state: MyState = {
       greeting: "Hello",
       users
    }
    
        2
  •  0
  •   hackape    7 年前
    interface MyState {
        greeting: string;
        users: {
            name: string;
            age: number;
        }
    }