Nestjs 打字稿:什么意思?还有!类内属性
有人能解释一下这个代码吗?我不明白他们为什么加上“?”标记。他们中的一些人有“!”而不是问号。Nestjs 打字稿:什么意思?还有!类内属性,nestjs,typeorm,Nestjs,Typeorm,有人能解释一下这个代码吗?我不明白他们为什么加上“?”标记。他们中的一些人有“!”而不是问号。 这是什么意思?这是一个真正的打字问题,而不是打字 定义类似以下内容的属性时: 类型Foo={ 项目1:编号 } 您是说prop1是可选的 当属性前面有时这意味着您告诉Typescript不要警告您没有在构造函数中初始化它(在严格模式下它通常会抱怨) 例如: class-Foo{ //Typescript不会抱怨'a',因为我们在构造函数中设置了它 公众a:数字; //Typescript会抱怨'b'
这是什么意思?这是一个真正的打字问题,而不是打字 定义类似以下内容的属性时:
类型Foo={
项目1:编号
}
您是说prop1
是可选的
当属性前面有时代码>这意味着您告诉Typescript不要警告您没有在构造函数中初始化它(在严格模式下它通常会抱怨)
例如:
class-Foo{
//Typescript不会抱怨'a',因为我们在构造函数中设置了它
公众a:数字;
//Typescript会抱怨'b',因为我们忘了。
公共b:数字;
//Typescript不会抱怨'c',因为我们告诉过它不要抱怨。
公共c!:编号;
//Typescript不会抱怨'd',因为它是可选的,并且是
//允许未定义。
公共d?:数字;
构造函数(){
这个a=5;
}
}
应该注意的是,c上面这个类中的code>case实际上是告诉Typescript的一种方式:“我知道我在做什么,我知道我在某处设置了这个,只是不在构造函数中。请不要抱怨。”
这与d?
的情况不同,因为这只意味着d
可以是数字
或未定义的
@Column({ name: 'device_kind', type: 'int2', nullable: false })
deviceKind?: number;