В машинописном машинописном тексте 1.8 введен строковый литерал. Тем не менее, при прохождении в объекте в качестве параметра, как показано ниже:Литература строковой строки с утиным типом объекта
const test = {
a: "hi",
b: "hi",
c: "hi"
};
interface ITest {
a: "hi" | "bye"
}
function testFunc (t: ITest) {
}
testFunc(test);
Это терпит неудачу с:
аргумент типа «{а: строки; b: строка; c: string; } 'не присваивается параметру типа «ITest». Виды собственности «а» несовместимы. Тип 'string' не присваивается типу '"hi" | "пока"'. Тип 'string' не присваивается типу '' bye ''.
Я ожидаю, что это сработает, так как оно отвечает требованиям интерфейса, но я могу что-то игнорировать.
a, b и c являются строковыми типами в тесте и «привет» | тип «bye» в вашем интерфейсе. – nullforce
Это имеет смысл, хотя это немного противоречит интуитивному. Благодарю. –