在typescript 2.2中,当strictNullChecks选项为true时,如何声明可为空的对象文字变量:
spring.jpa.database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.properties.hibernate.dialect: org.hibernate.dialect.MySQL5InnoDBDialect
我找到的唯一方法是:
let myVar = { a: 1, b: 2 };
myVar = null; // Error can not assign null
答案 0 :(得分:3)
您可以通过编写nullable
实用程序函数来完成此操作:
const nullable = <T>(a: T) => a as T | null;
let myVar = nullable({ a: 1, b: 2 });
myVar = null; // Valid!
这确实在变量初始化时引入了额外的函数调用,但在大多数真实场景中这可能不会对您产生太大影响。代码相当干净,所以我很喜欢这个解决方案。
另一个不那么好的方法是:
const fake = { a: 1, b: 2 };
let realVar: typeof fake | null = fake;
realVar = null;
缺点如下: