我发现对象类型声明有一个奇怪的地方。我希望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,
...发布于 2020-05-18 00:26:08
由于自动分号插入(ASI),JavaScript中的分号是可选的。TypeScript也遵循ASI。ASI并不简单,在某些情况下,省略分号会导致意外的运行时错误。但JavaScript中的少数角例被TypeScript的类型系统进一步消除了。
// valid
class Employee{
name: string;
age: number;
}
// also valid
class Employee{
name: string
age: number
}这里有一个类似问题的链接,可能会对您有所帮助-- Are semicolons necessary in typescript?
https://stackoverflow.com/questions/61854994
复制相似问题