#typescript #object
Вопрос:
Я написал следующий объект в машинописном виде, который мне нужен для заглушки в модульном тестировании (я знаю, что определения значений/функций не имеют смысла, но это просто заглушка):
const obj = {
isEmpty: true,
testName: 'unitTest',
getTime: () => 5,
success: () => {},
fail: () => {},
wait: () => {},
};
getTime
, success
, fail
и wait
должны быть функциями, но когда я навожу на них курсор в VSCode, они задаются как свойства (например isEmpty
, и testName
). Могу ли я каким-либо образом сделать так, чтобы они были строго признаны функциями? (это важно позже в модульном тесте)
Комментарии:
1. Что вы подразумеваете под «данными как свойствами»? Это свойства. (Типов функций.) Можете ли вы подробнее рассказать о том, как используется этот код и каким конкретно образом он работает не так, как ожидалось?
Ответ №1:
Вы можете определить тип для obj следующим образом. Теперь ваш редактор должен распознать его как функции.
type objType = {
isEmpty: boolean;
testName: string;
getTime(): number;
success(): void;
fail(): void;
wait(): void;
};
const obj: objType = {
isEmpty: true,
testName: "unitTest",
getTime: () => 5,
success: () => {},
fail: () => {},
wait: () => {},
};
Пример в машинописной игровой площадке
Комментарии:
1. В VSCode они по-прежнему отображаются как свойства
2. @SaboBoz Извините, я использовал неправильный синтаксис . Я обновил свой ответ, чтобы отразить правильный синтаксис. Я также добавил скриншот кода в VSCode, и теперь он правильно отображает «метод» вместо «свойство».