【问题标题】:declare new type using js class使用 js 类声明新类型
【发布时间】:2018-04-19 00:01:03
【问题描述】:

我会创建一个与我的数据结构匹配的新类型

这是我收到的数据格式

[{
    category1: [{
        fileName: "blabla"
    }, {
        fileDate: "DATE
    }, {
        fileURL: "http...."
    }]

}, {
    category2: [{
            fileName: "blabla2"
        },
        {
            fileDate: "DATE"
        },
        {
            fileURL: "http...."
        }
    ]

}]

我已经创建了一个类来定义模型

export class CreditPoliciesDetails { 
    private _fileName : string ="" ;
    private _fileDate : string ="" ;
    private _fileSize : string ="" ;
    constructor() {
      this._fileDate="";
      this._fileName="";
      this._fileSize="";
    }
    get fileName() {
        return this._fileName;
    }
    get fileDate() {
        return this._fileDate;
    }
    get fileSize() {
        return this._fileSize;
    }
}
export class CreditPolicies {
    private _category : CreditPoliciesDetails;
    constructor () {}
    get category() {
        return this._category
    }
}

在我的组件文件中,我导入模型文件,然后定义一个新变量并在控制台记录它

files : CreditPolicies;
ngOnInit() {
  console.log ("file details ", this.files)
}

我希望获得类型树的详细信息,但在我的开发控制台中我得到了未定义的内容:file details undefined

如何正确定义新类型并打印一些默认数据?

【问题讨论】:

  • 在您的示例中,this.files 未定义,因为您没有为其分配任何值。
  • 我已经初始化 CreditPoliciesDetails 项目
  • 在哪里?请提供stackoverflow.com/help/mcve
  • CreditPoliciesDetails我初始化了三个变量。我怎么能初始化_category
  • files 未在任何地方初始化,并且与 CreditPoliciesDetails 无关。 _categories 不会是 CreditPoliciesDetails 的实例,直到您执行 _categories = new CreditPoliciesDetails 。我猜你的问题与 JS/TS 基本概念有关,而不是 Angular。

标签: javascript angular


【解决方案1】:

嗯,你的构造函数很不错。如果你想为你的对象创建一个新实例,它应该看起来更像这样:

    private _fileName : string;
    private _fileDate : string;
    private _fileSize : string;
    constructor(fileDate: string, fileSize: string, fileSize: string) {
      this._fileDate = fileDate;
      this._fileName = fileName;
      this._fileSize = fileSize;
    }

这允许您创建对象的新实例,有点像这样......

newObject: CreditPoliciesDetail = new CreditPoliciesDetail("10/10/2000", "mystuff.txt", "1923")

然后你基本上可以用

来记录它

console.log(newObject)

一般来说,您可能想访问https://www.typescriptlang.org/docs/handbook/variable-declarations.html 并阅读他们的教程。了解面向对象编程的基本思想真是太好了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-24
    • 1970-01-01
    • 1970-01-01
    • 2014-01-18
    • 2011-08-25
    • 2013-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多