Typescript 1.8 введен тип строкового литерала. Однако при передаче объекта в качестве параметра, как в следующем:
const test = {
a: "hi",
b: "hi",
c: "hi"
};
interface ITest {
a: "hi" | "bye"
}
function testFunc (t: ITest) {
}
testFunc(test);
Сбой:
Аргумент типа '{a: string; b: строка; c: string; } 'не присваивается параметру типа "ITest". Типы собственности "а" несовместимы. Тип 'string' не присваивается типу 'hi' | "пока" '. Тип 'string' не присваивается типу '' bye ''.
Я ожидаю, что это сработает, так как оно отвечает требованиям интерфейса, но я мог бы что-то игнорировать.