【问题标题】:error TS1131: Property or signature expected and error TS1005: ';' expected错误 TS1131:预期属性或签名和错误 TS1005:';'预期的
【发布时间】:2019-12-07 21:35:10
【问题描述】:

在使用 Angular 8 和 Typescript 版本 3.4.5 时遇到此错误 尝试在 Angular 中创建一个接口类,如下所示:

 export interface Test {
    id: string;
    created-date: number;
    import-by: string;
 }

错误: 创建日期:编号; 错误 TS1128:需要声明或声明。 创建日期:编号; 错误 TS1005:';'预期的。 导入方式:字符串; 错误 TS1128:需要声明或声明。 导入方式:字符串; 错误 TS1005:';'预计。

当来自 java 后端的 json 响应为 jsonProperty 提供破折号而不是驼峰式时如何处理

【问题讨论】:

  • import-by 不是有效的变量名。试试'import-by'import_by

标签: angular typescript


【解决方案1】:

如果您的属性标识符包含 -,您需要将属性名称放在引号中(''""):

 export interface Test {
    id: string;
    'created-date': number;
    'import-by': string;
 }

【讨论】:

  • 谢谢。这解决了错误。但是,它的值在 html 中显示为 NaN,即使我看到响应中显示的值。
  • @mitha.s 我怀疑这与属性名称有关。
【解决方案2】:

(此答案与上述问题无关,但这可能会有所帮助,因为解释可能与以下问题相关)

可能有用的一件事是,如果类本身后面已经有一个感叹号,则不能在属性上添加感叹号。 !意味着它不能为空或未定义。还在学TS,解释很模糊。

Wrong:

export class Hello {
    info!: {
        num!: number; // Will complain about 'Property or signature expected.'
    }
}

Right: (Take out the ! mark in the 'num' property)

export class Hello {
    info!: {
        num: number;
    }
}

【讨论】:

    猜你喜欢
    • 2018-05-14
    • 1970-01-01
    • 2017-11-24
    • 1970-01-01
    • 2023-03-25
    • 2013-08-20
    • 2018-03-06
    • 2017-07-08
    • 1970-01-01
    相关资源
    最近更新 更多