Ответ 1
Начиная с TypeScript 1,6 или около того, вы можете использовать либо ,
, либо ;
как разделитель в объявлениях interface
или анонимных типах объектов! Команда решила, что гибкость в использовании одного или другого перевешивает проблемы, перечисленные в разделе "старый ответ".
Вам все равно нужно использовать ;
в объявлениях классов для устранения неоднозначности:
x = 3;
class X {
// Could be parsed as expression with comma operator,
// or two declarations
y = 1, x = 3;
}
Я сохранил старый ответ ниже для исторического контекста
Старый ответ
Технически это могло пойти в любом случае, но есть много веских причин использовать точки с запятой.
В языках программирования чаще встречается точка с запятой, обозначающая концы строк и запятых, разделяющих объекты внутри строки (для этого есть несколько исключений, например перечисления). Большинство типов TypeScript достаточно велики, что они охватывают несколько строк, что делает точку с запятой лучшим выбором.
Там также есть желание иметь интерфейсы и классы похожи. Рассмотрим что-то вроде этого:
interface Point {
x: number;
y: number;
}
class MyPoint {
x: number;
y: number;
}
Намного проще сделать MyPoint
реализовать Point
с помощью copy-and-paste или изменить что-то из интерфейса в класс или наоборот, если они используют один и тот же разделитель. Возможно, вы могли бы сделать запятыми разделительным символом в объявлениях классов, но это трудно продавать, чтобы быть первым языком программирования, используемым для этого.
Также желательно иметь возможность рассказать объектные литералы и разбить литералы на первый взгляд. Хотя одночастный { x: string }
может быть либо в зависимости от контекста, он несколько приятнее, если вы можете отличить их на основе их разделителя, когда контекст не является очевидным в сложном выражении.
Наконец, каждый другой язык, используемый совместно с синтаксисом interface
, использует точки с запятой. Если вы сомневаетесь, следуйте соглашению, а синтаксис для литерала типа и интерфейса обязательно должен использовать один и тот же разделительный символ.