Извините, если этот вопрос уже задавался, но я вижу только "в чем разница между интерфейсом и типом".
Так что моя проблема в том, что я создал тип, который говорит, что это может быть один объект / интерфейс или другой. Функция получает параметры с этим типом, и это создает проблему типа. Это нелегко объяснить, поэтому код будет лучше: go на Typescript Playground .
Я не понимаю, почему моя переменная недоступна с этим условием, я даже пытался использовать охрану типа, но я не могу заставить его работать.
type Params = {
a: string;
} | {
b: string;
c: number;
}
function test(params: Params) {
if (params.a !== undefined) {
console.log("I want to use a there", params.a)
} else {
console.log("otherwise it mean b and c are available", params.b, params.c)
}
}
test({ a: "ok" })
test({ b : "ok", c : 1337 })
Спасибо заранее;)