Javascript对象的这种语法是什么?文字!:一串
就像我问的,有一个!在JS对象的键声明中冒号之前 类的MikroORM语法Javascript对象的这种语法是什么?文字!:一串,javascript,ecmascript-6,Javascript,Ecmascript 6,就像我问的,有一个!在JS对象的键声明中冒号之前 类的MikroORM语法 @Entity() export class Post { // the @PrimaryKey invokes a function that takes the returned key/value pair and adds it as a column / information @PrimaryKey() id!: number; @Property({ type: "date&qu
@Entity()
export class Post {
// the @PrimaryKey invokes a function that takes the returned key/value pair and adds it as a column / information
@PrimaryKey()
id!: number;
@Property({ type: "date", default: "NOW()" })
createdAt = new Date();
@Property({ type: "date", default: "NOW()", onUpdate: () => new Date() })
updatedAt = new Date();
@Property({ type: "text" })
title!: string;
}
在JavaScript中,这是一个语法错误,但您显示的代码是代码。TypeScript是添加类型信息的JavaScript超集。在TypeScript中,text!:string
是一种类型定义,表示:
- 有一个叫做
(在本文中,我希望它是一个变量,而不是一个对象属性)text
- 它的类型是
string
- 即使从上下文看不出这是真的
类
定义,下面是Post
类的说明:
- 类型为
的number
属性,即使id
构造中的代码未显示初始化,也会明确分配/初始化该属性类
- 用
初始化的new Date()
属性(这将使TypeScript推断其类型为createdAt
)Date
属性也用updatedAt
new Date()初始化
- 类型为
的string
属性,它与title
一样,是绝对初始化的,即使该初始化未显示在id
类中
- 它使用与ORM相关的各种装饰器,如
,将这些属性连接到模型,并说明ORM应该如何处理它们@PrimaryKey
这些明确的赋值/初始化断言在使用ORM的类代码中并不少见。如果您提供一个代码示例来给我们提供上下文,您的问题会更容易理解。从未见过这样的情况。举个真实的例子怎么样<代码>是布尔
not
运算符。从您的描述来看,它似乎是。如果您可以发布更大的代码示例,以便我们可以在上下文中看到它,这会有所帮助。但是如果我不得不猜测的话,您正在处理TypeScript(而不仅仅是JavaScript),感叹号是,它告诉TypeScript编译器该属性有一个值(在编译器无法推断该属性本身的情况下,例如,在构造函数中使用Object.assign
)。{key!:“val”}
在js控制台中抛出语法错误