Typescript 中类的构造函数的参数“data”类型应该是什么

问题描述 投票:0回答:1

这是我的代码:

export class People {
    name: string;
    age: number;
    constructor(data: any) {
        this.name = data.name;
        this.age = data.age;
    }
}

使用any 时我不断收到错误。

data
的类型应该是什么,这样我就不会收到任何错误?

我知道我也可以:

export class People {
    name: string;
    age: number;
    constructor(name: string, age: number) {
        this.name = name;
        this.age = age;
    }
}

但是我希望任何 JSON 使用这个模型,假设从服务器获取 JSON,这样我就可以做到:

const data = await fetchData();
const person = new Person(data)

我应该做哪些更改才能继续对任何对象使用该模型并删除所有打字稿错误?

我尝试将类型更改为:

object
,但随后我在
data.name
data.age

上收到错误
javascript typescript oop
1个回答
0
投票

您可以使用界面查看此LINK

你的代码将是这样的

interface PersonData {
    name: string;
    age: number;
}

export class People {
    name: string;
    age: number;
    constructor(data: PersonData) {
        this.name = data.name;
        this.age = data.age;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.