我发现对象类型声明很奇怪。我期望p2是正确的,但是它可以与,
一起使用,甚至我省略了分号,仍然可以。为什么如此不一致?
let p: {
x: number,
y: string
} = {
x: 1,
y: "abc",
}
let p2: {
x: number;
y: string
} = {
x: 1,
y: "abc",
}
let p3: {
x: number
y: string
} = {
x: 1,
...
答案 0 :(得分:1)
由于自动分号插入(ASI),JavaScript中的分号是可选的。 TypeScript也遵循ASI。 ASI并不简单,在某些情况下,省略分号将导致意外的运行时错误。但是TypeScript的类型系统进一步消除了JavaScript中的一些极端情况。
// valid
class Employee{
name: string;
age: number;
}
// also valid
class Employee{
name: string
age: number
}
这是一个类似问题的链接,可能会帮助您- Are semicolons necessary in typescript?