У меня есть следующее:
type CommandTypes = 'one' | 'two' | 'three';
const CONST = {
commands: {
a: 'one',
b: 'two',
c: 'error'
},
};
Есть ли способ заставить все команды определенного типа?
Сейчас TypeScript говорит мне, что a, b и c имеют тип строка , но я хочу, чтобы эти свойства имели тип CommandTypes , поэтомучто разработчик не может указать произвольную строку.Я хочу, чтобы TypeScript мог отловить ошибку, что c недопустим, поскольку он не принадлежит разрешенным типам CommandTypes.
Если я разбью определение CONST следующим образом:
type CommandTypes = 'one' | 'two' | 'three';
const commands : CommandTypes = {
a: 'one',
b: 'two',
c: 'error'
}
const CONST = {
commands,
};
Тогда это действительно перехватывает ошибку с c , однако теперь я также теряю автозаполнение в коде Visual Studio.Если я наберу CONST.commands. Я не получаю никакого автозавершения здесь сейчас, где, как будто я оставляю определение, как показано в верхней части поста, тогда я получаю автозаполнение.