Я новичок в TypeScript, пытаюсь написать Node.js (Node.ts?) Бэкэнд и пытаюсь go об основах настройки моего сервера. Я использую ts-node версии 8.6.2 и машинописную версию 3.7.5 и определяю проверку для некоторых объектов домена следующим образом (в стиле ajv
):
// domain_obj_1.ts:
const commonSchema = {
type: 'object',
properties: {
foo: { type: 'string' },
},
};
export class DomainObject1 {
...
// domain_obj_2.ts:
const commonSchema = {
type: 'object',
properties: {
bar: { type: 'string' },
},
};
export class DomainObject2 {
...
Тем не менее, ts-node-dev
выдает следующую ошибку:
error TS2403: Subsequent variable declarations must have the same type.
Variable 'commonSchema' must be of type '{ type: string; properties: { foo: { type: string; }; }; }',
but here has type '{ type: string; properties: { bar: { type: string; }; }; }'.
Я могу только предположить, что Typescript обнаруживает столкновение этих отдельных объявлений commonSchema
, но они не экспортируются, поэтому я не знаю, как это происходит.
Я многое еще не понимаю о TS и его использовании в Node, но это удивительное поведение, и мне интересно, есть ли что-то очевидное, что я упускаю.