ts 属性“xxx”没有初始化表达式,且未在构造函数中明确赋值的解决方案

397 阅读1分钟

ts 属性“xxx”没有初始化表达式,且未在构造函数中明确赋值的解决方案

报错原因

​ ts默认在class中声明的属性必须要初始化,如果没有初始化,就会报这个错 属性“xxx”没有初始化表达式,且未在构造函数中明确赋值

​ 如果给它赋值为null,就必须得在使用的时候使用非空断言,使用的繁琐度又上升了

解决方案

单次忽略

​ 使用 // @ts-ignore来暂时性单次忽略此次报错

​ 代码:

class Person {
    // @ts-ignore
    name : string;
};

构造函数赋值

​ 使用构造函数赋值

​ 代码:

class Person {
    name : string;
    constructor(data: {name: string}) {
        this.data = data;
    }
};

const a = new Person({name: 'Tom'});
console.log(a.data.name);

修改全局配置

​ 更改配置,关闭ts的初始化检测

  1. 打开tsconfig.json
  2. strictPropertyInitialization改为false

没有strictPropertyInitialization,可手动添加即可

代码:

{
  "strictPropertyInitialization": false
}