typescript 读取jsonfile类型脚本Angular

cedebl8k  于 2023-01-06  发布在  TypeScript
关注(0)|答案(2)|浏览(223)

我开始学习 typescript --棱角分明,我想读一个json文件。
我json文件看起来像这样:

{
  "nb": "7",
  "extport": "1176",,
  "REQ_EMAIL": "email@me.you",
  "DIGEST": "sha512",
  "password": "@mypassword",
  "ip": "8.8.8.8",
  "name": "@myname",
  "version": "v3.0.2"
}

我的组件ts代码:我试图创建一个变量来读取我的jsonfile:

import { Component, Input, OnInit } from '@angular/core';
import * as param from '../../data/setup.json'

interface Setup {
  number: string;
  port: string;
  email: string;
  password: string;
}

@Component({
  selector: 'app-appareils',
  templateUrl: './appareils.component.html',
  styleUrls: ['./appareils.component.scss']
})
export class AppareilsComponent implements OnInit {

  constructor() {}

  data: Setup[] = param ; 

  ngOnInit(): void {}

}

但我在创建变量数据时出错:类型“Setup[]”中缺少以下属性:长度、弹出、推送、连续以及29种以上。
我怎么能修复它使用这个变量的html文件?
谢谢

68de4m5k

68de4m5k1#

您通常不会像这样混淆JSON和Typescript。
第一个明显的原因是文件扩展名不相同。
第二个主要原因是JSON文件不是由您的transpiler(typescript)管理的,并且没有与之关联的类型和所有内容。
而是创建一个.ts文件:

export const setupData = {
  nb: '7',
  extport: '1176',
  REQ_EMAIL: 'email@me.you',
  DIGEST: 'sha512',
  password: '@mypassword',
  ip: '8.8.8.8',
  name: '@myname',
  version: 'v3.0.2',
};

然后,您可以将其导入到代码中,并让typescribe为您推断类型(或者,如果您愿意,您可以自己声明类型)。
但这样一来,如果你的数据中出现了输入错误,转发器就会捕捉到并警告你,这是它目前没有做到的。

g6ll5ycj

g6ll5ycj2#

儿子:

{
  "number": "7",
  "port": "1176",,
  "email": "email@me.you",
  "password": "@mypassword"
}

组件类别:

import jsonData from '../../data/setup.json';

export class AppareilsComponent {
      number: string;
      port: string;
      email: string;
      password: string;
}

let data= Object.assign(new AppareilsComponent(), jsonData);

相关问题