打字稿错误:缺少私有财产?

弗兰

我有一个带有私有属性的类,但是当我尝试使用此元素创建一个数组时,出现以下错误:

error TS2322: Type '{ "id": number; "totalTime": number; "team": { "id": number; "name": string; }; }[]' is not assignable to type 'Training[]'.
[0]   Type '{ "id": number; "totalTime": number; "team": { "id": number; "name": string; }; }' is not assignable to type 'Training'.
[0]     Property 'remainingTime' is missing in type '{ "id": number; "totalTime": number; "team": { "id": number; "name": string; }; }'

数组类:

import { TEAMS } from './mock-teams';
import { Training } from './training';

export var TRAININGS: Training[] = [ 
    {"id": 0, "totalTime": 60, "team": {"id": TEAMS[0]['id'], "name": TEAMS[0]['name'] } },
    {"id": 1, "totalTime": 60, "team": {"id": TEAMS[0]['id'], "name": TEAMS[0]['name'] } }
];

培训班:

export class Training {
    private remainingTime: number = 0;

    constructor(
        public id: number,
        public totalTime: number,
        public team?: Team) {
    }   
}

我不明白为什么打字稿抱怨的私有属性,甚至没有在构造函数中。

阿卜杜勒·拉赫曼·阿索耶

这样做的方法是创建一个Object []类型的数组您需要做的是像下面这样调用构造函数,以告诉编译器您正在创建一个Training对象:

import { TEAMS } from './mock-teams';
import { Training } from './training';

export var TRAININGS: Training[] = [ 
    new Training(0,60, {"id": TEAMS[0]['id'], "name": TEAMS[0]['name'] }),
    new Training(1,60, {"id": TEAMS[0]['id'], "name": TEAMS[0]['name'] })
];

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用反射获取私有财产的私有财产

来自分类Dev

告诉EF 6忽略私有财产

来自分类Dev

如何使用PropertyBuilder创建私有财产

来自分类Dev

自动修复和私有财产

来自分类Dev

私有财产子类化

来自分类Dev

访问子类的私有财产

来自分类Dev

嘲笑私有财产与嘲笑引发

来自分类Dev

私有财产和可变类型

来自分类Dev

php类课外的私有财产访问

来自分类Dev

访问子类的私有财产

来自分类Dev

课堂实施中的私有财产

来自分类Dev

构造函数内部的公共财产与私有财产

来自分类Dev

OOP-关于DDD的私有领域或私有财产制定者

来自分类Dev

私有财产和私有字段之间的区别

来自分类Dev

私有财产和持有静态价值的方法之间的区别?

来自分类Dev

为什么私有财产没有相同的范围?

来自分类Dev

科特林:只有吸气私有财产的可变

来自分类Dev

公开带有类别的私有财产

来自分类Dev

私有财产/公共获取者-javascript

来自分类Dev

Objective-C如何声明类别的私有财产?

来自分类Dev

私有财产的通用设置器/获取器方法

来自分类Dev

Json.Net-明确包含一个私有财产

来自分类Dev

Mobx中可观察到的私有财产

来自分类Dev

ES6类私有财产只是语法糖吗?

来自分类Dev

如何在JavaScript中定义公共和私有财产

来自分类Dev

私有财产/公共获取者-javascript

来自分类Dev

Objective-C私有财产的公共获取集方法

来自分类Dev

为什么可以在课堂之外访问私有财产?

来自分类Dev

Google Closure Compiler内联了重复使用的私有财产-漏洞还是我遗漏了一些东西?