我刚开始学打字,所以我有一个关于语法的问题.

在对象类型的类型别名中,属性是用分号(;)还是逗号(,)分隔的?

我从The TypeScript Handbook看,;是用的.

// object literal type
type Person = {
  name: string;
  age: number;
};

然而,在Web上的其他代码示例中,例如w3schools,我看到逗号(,).

type CarYear = number
type CarType = string
type CarModel = string
type Car = {
  year: CarYear,
  type: CarType,
  model: CarModel
}

我认为这段带有逗号的代码是错误的,但它似乎可以很好地转换为JavaScript.

顺便说一句,在这些看起来相似但实际上是different个例子中,逗号是正确的.

// inferred type from setting to an object literal
const car = {
  year: 2009,
  type: "Toyota"
};

// defining an object while using a type alias.
const car: Car = {
  year: 2009,
  type: "Toyota"
};

// tuple type
type Data = [
  location: Location,
  timestamp: string
];

但回到主要问题上来: 为了分隔对象类型的类型别名中的属性, 逗号(,)是不是错了?或者也可以接受?为什么?

推荐答案

ForMatters在默认情况下将使用分号:

type CarYear = number;
type CarType = string;
type CarModel = string;
type Car = {
  year: CarYear;
  type: CarType;
  model: CarModel;
};

type Person = {
  name: string;
  age: number;
};

Typescript相关问答推荐

Typescript问题和缩减器状态不会在单击时添加用途.属性'状态和调度'不存在于userContextType类型上'|null'

如何在另一个if条件中添加if条件

如何使打包和拆包功能通用?

Angular 17 -如何在for循环内创建一些加载?

使用带有RxJS主题的服务在Angular中的组件之间传递数据

与字符串文字模板的结果类型匹配的打字脚本

如何调整对象 struct 复杂的脚本函数的泛型类型?

嵌套对象的类型

如何在Reaction Query Builder中添加其他字段?

垫表页脚角v15

专用路由组件不能从挂钩推断类型

基于泛型的条件接口键

如何键入派生类的实例方法,以便它调用另一个实例方法?

如何创建一个将嵌套类属性的点表示法生成为字符串文字的类型?

如何从抽象类的静态方法创建子类的实例?

仅当类型为联合类型时映射属性类型

Karma Angular Unit测试如何创建未解析的promise并在单个测试中解决它,以判断当时的代码是否只在解决后运行

React中的效果挂钩在依赖项更新后不会重新执行

递归JSON类型脚本不接受 node 值中的变量

TS2532:对象可能未定义